1.磁碟分類
磁碟,硬碟 != 記憶體
- HDD(hard)機械硬碟.
- SSD(solid)固態硬碟.
- 磁碟介面:類似於水壺的壺嘴,決定了磁碟最大速度. ⭐
硬碟選項 | 說明 | 容量轉速 |
---|---|---|
機械硬碟 | SATA | 備份伺服器,效能要求不高場景,10k rpm 4tb 8tb 10tb 根據需要選擇(未來規劃) |
機械硬碟 | SAS | 企業環境標配,生產環境使用,15k rpm 300G 600G 900G |
固態硬碟 | U2/PCI-E | 訪問量大,大量讀寫操作,效能好,價格高. TB |
固態硬碟 | SATA/SAS | 價效比高. TB |
2.磁碟分割槽
主分割槽:
擴充套件分割槽:
邏輯分割槽
2.1 瞭解-磁頭-磁軌-扇區(機械硬碟)
2.2 瞭解-固態硬碟組成
# 控制晶片(主控)
# 儲存晶片(顆粒)
slc
mlc
tlc
QLC
3d xxx
2.3 主分割槽-擴充套件分割槽-邏輯分割槽(硬碟小於2t)
- MBR引導對應的磁碟分割槽最多有4個(主分割槽).
- 建立擴充套件分割槽,無法直接使用。需要在擴充套件分割槽下面建立邏輯分割槽然後使用。
分割槽MBR | 說明 |
---|---|
主分割槽 | 直接佔用磁碟分割槽表,可以存放資料. |
擴充套件分割槽 | 佔用主分割槽1個位置,只能有1個.一般剩餘多少空間給擴充套件分割槽多少.無法直接使用. |
邏輯分割槽 | 先建立擴充套件分割槽,然後建立邏輯分割槽,可以存放資料. |
2.4 磁碟分割槽實戰-fdisk ⭐️⭐️⭐️⭐️⭐️
2.4.1 磁碟分割槽簡介
點選檢視程式碼
[root@Kylin-V10-sp3 ~]# fdisk -l
Disk /dev/sda:100 GiB,107374182400 位元組,209715200 個扇區
磁碟型號:VMware Virtual S
單元:扇區 / 1 * 512 = 512 位元組
扇區大小(邏輯/物理):512 位元組 / 512 位元組
I/O 大小(最小/最佳):512 位元組 / 512 位元組
磁碟標籤型別:dos
磁碟識別符號:0x08e597e1
裝置 啟動 起點 末尾 扇區 大小 Id 型別
/dev/sda1 * 2048 2099199 2097152 1G 83 Linux
/dev/sda2 2099200 209715199 207616000 99G 8e Linux LVM
Disk /dev/sdb:1 GiB,1073741824 位元組,2097152 個扇區
磁碟型號:VMware Virtual S
單元:扇區 / 1 * 512 = 512 位元組
扇區大小(邏輯/物理):512 位元組 / 512 位元組
I/O 大小(最小/最佳):512 位元組 / 512 位元組
磁碟標籤型別:dos
磁碟識別符號:0x4abfed3a
裝置 啟動 起點 末尾 扇區 大小 Id 型別
/dev/sdb1 2048 2097151 2095104 1023M 83 Linux
Disk /dev/sdc:1 GiB,1073741824 位元組,2097152 個扇區
磁碟型號:VMware Virtual S
單元:扇區 / 1 * 512 = 512 位元組
扇區大小(邏輯/物理):512 位元組 / 512 位元組
I/O 大小(最小/最佳):512 位元組 / 512 位元組
Disk /dev/sdd:2.93 TiB,3221225472000 位元組,6291456000 個扇區
磁碟型號:VMware Virtual S
單元:扇區 / 1 * 512 = 512 位元組
扇區大小(邏輯/物理):512 位元組 / 512 位元組
I/O 大小(最小/最佳):512 位元組 / 512 位元組
磁碟標籤型別:gpt
磁碟識別符號:7E7322A5-9FA0-4C1E-BCFB-FC2DA454683B
裝置 起點 末尾 扇區 大小 型別
/dev/sdd1 34 390625 390592 190.7M Linux 檔案系統
/dev/sdd2 391168 585727 194560 95M Linux 檔案系統
Disk /dev/mapper/klas-root:65.11 GiB,69906464768 位元組,136536064 個扇區
單元:扇區 / 1 * 512 = 512 位元組
扇區大小(邏輯/物理):512 位元組 / 512 位元組
I/O 大小(最小/最佳):512 位元組 / 512 位元組
Disk /dev/mapper/klas-swap:2.11 GiB,2260729856 位元組,4415488 個扇區
單元:扇區 / 1 * 512 = 512 位元組
扇區大小(邏輯/物理):512 位元組 / 512 位元組
I/O 大小(最小/最佳):512 位元組 / 512 位元組
Disk /dev/mapper/klas-backup:31.79 GiB,34129051648 位元組,66658304 個扇區
單元:扇區 / 1 * 512 = 512 位元組
扇區大小(邏輯/物理):512 位元組 / 512 位元組
I/O 大小(最小/最佳):512 位元組 / 512 位元組
[root@Kylin-V10-sp3 ~]#
'''
磁碟命名:
/dev/sd開頭 #sas,sata,scsi介面
/dev/vd開頭 #雲伺服器 雲盤 ,虛擬化環境
/dev/nvme卡頭 #固態硬碟 nvme
第1塊硬碟 a 一次類推
/dev/sda
分割槽MBR分割槽中 數字形式
主分割槽或擴充套件分割槽 1-4
邏輯分割槽:從5開始.
第1個主分割槽 /dev/sda1 /dev/sda2 /dev/sda3 /dev/sda4
1個主分割槽 1個擴充套件分割槽 1個邏輯
/dev/sda1 /dev/sda2 /dev/sda5
'''
2.4.2 fdisk 指令
w 儲存並退出 write
q 退出不儲存 quit
p 檢視分割槽資訊 print
n 新建分割槽 new
d 刪除 delete
2.4.3 給第2塊硬碟/dev/sdb,建立1個100mb的主分割槽,建立擴充套件分割槽(剩下所有容量),建立100M邏輯分割槽邏輯分割槽
點選檢視程式碼
[root@Kylin-V10-sp3 ~]# fdisk -l | grep sd
Disk /dev/sda:100 GiB,107374182400 位元組,209715200 個扇區
/dev/sda1 * 2048 2099199 2097152 1G 83 Linux
/dev/sda2 2099200 209715199 207616000 99G 8e Linux LVM
Disk /dev/sdb:1 GiB,1073741824 位元組,2097152 個扇區
Disk /dev/sdc:1 GiB,1073741824 位元組,2097152 個扇區
Disk /dev/sdd:2.93 TiB,3221225472000 位元組,6291456000 個扇區
/dev/sdd1 34 390625 390592 190.7M Linux 檔案系統
/dev/sdd2 391168 585727 194560 95M Linux 檔案系統
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# fdisk /dev/sdb
歡迎使用 fdisk (util-linux 2.35.2)。
更改將停留在記憶體中,直到您決定將更改寫入磁碟。
使用寫入命令前請三思。
命令(輸入 m 獲取幫助):F
未分割槽的空間 /dev/sdb:1023 MiB,1072693248 個位元組,2095104 個扇區
單元:扇區 / 1 * 512 = 512 位元組
扇區大小(邏輯/物理):512 位元組 / 512 位元組
起點 末尾 扇區 大小
2048 2097151 2095104 1023M
命令(輸入 m 獲取幫助):p
Disk /dev/sdb:1 GiB,1073741824 位元組,2097152 個扇區
磁碟型號:VMware Virtual S
單元:扇區 / 1 * 512 = 512 位元組
扇區大小(邏輯/物理):512 位元組 / 512 位元組
I/O 大小(最小/最佳):512 位元組 / 512 位元組
磁碟標籤型別:dos
磁碟識別符號:0x4abfed3a
命令(輸入 m 獲取幫助):n
分割槽型別
p 主分割槽 (0 primary, 0 extended, 4 free)
e 擴充套件分割槽 (邏輯分割槽容器)
選擇 (預設 p):p
分割槽號 (1-4, 預設 1): p
值超出範圍。
分割槽號 (1-4, 預設 1):
第一個扇區 (2048-2097151, 預設 2048):
最後一個扇區,+/-sectors 或 +size{K,M,G,T,P} (2048-2097151, 預設 2097151): +100M
建立了一個新分割槽 1,型別為“Linux”,大小為 100 MiB。
命令(輸入 m 獲取幫助):p
Disk /dev/sdb:1 GiB,1073741824 位元組,2097152 個扇區
磁碟型號:VMware Virtual S
單元:扇區 / 1 * 512 = 512 位元組
扇區大小(邏輯/物理):512 位元組 / 512 位元組
I/O 大小(最小/最佳):512 位元組 / 512 位元組
磁碟標籤型別:dos
磁碟識別符號:0x4abfed3a
裝置 啟動 起點 末尾 扇區 大小 Id 型別
/dev/sdb1 2048 206847 204800 100M 83 Linux
1 分割槽上的檔案系統/RAID 簽名將被擦除。
命令(輸入 m 獲取幫助):n
分割槽型別
p 主分割槽 (1 primary, 0 extended, 3 free)
e 擴充套件分割槽 (邏輯分割槽容器)
選擇 (預設 p):e
分割槽號 (2-4, 預設 2):
第一個扇區 (206848-2097151, 預設 206848):
最後一個扇區,+/-sectors 或 +size{K,M,G,T,P} (206848-2097151, 預設 2097151):
建立了一個新分割槽 2,型別為“Extended”,大小為 923 MiB。
命令(輸入 m 獲取幫助):p
Disk /dev/sdb:1 GiB,1073741824 位元組,2097152 個扇區
磁碟型號:VMware Virtual S
單元:扇區 / 1 * 512 = 512 位元組
扇區大小(邏輯/物理):512 位元組 / 512 位元組
I/O 大小(最小/最佳):512 位元組 / 512 位元組
磁碟標籤型別:dos
磁碟識別符號:0x4abfed3a
裝置 啟動 起點 末尾 扇區 大小 Id 型別
/dev/sdb1 2048 206847 204800 100M 83 Linux
/dev/sdb2 206848 2097151 1890304 923M 5 擴充套件
1 分割槽上的檔案系統/RAID 簽名將被擦除。
命令(輸入 m 獲取幫助):n
所有主分割槽的空間都在使用中。
新增邏輯分割槽 5
第一個扇區 (208896-2097151, 預設 208896):
最後一個扇區,+/-sectors 或 +size{K,M,G,T,P} (208896-2097151, 預設 2097151): +100M
建立了一個新分割槽 5,型別為“Linux”,大小為 100 MiB。
命令(輸入 m 獲取幫助):p
Disk /dev/sdb:1 GiB,1073741824 位元組,2097152 個扇區
磁碟型號:VMware Virtual S
單元:扇區 / 1 * 512 = 512 位元組
扇區大小(邏輯/物理):512 位元組 / 512 位元組
I/O 大小(最小/最佳):512 位元組 / 512 位元組
磁碟標籤型別:dos
磁碟識別符號:0x4abfed3a
裝置 啟動 起點 末尾 扇區 大小 Id 型別
/dev/sdb1 2048 206847 204800 100M 83 Linux
/dev/sdb2 206848 2097151 1890304 923M 5 擴充套件
/dev/sdb5 208896 413695 204800 100M 83 Linux
1 分割槽上的檔案系統/RAID 簽名將被擦除。
命令(輸入 m 獲取幫助):w
分割槽表已調整。
將呼叫 ioctl() 來重新讀分割槽表。
正在同步磁碟。
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# df -hT
檔案系統 型別 容量 已用 可用 已用% 掛載點
devtmpfs devtmpfs 459M 0 459M 0% /dev
tmpfs tmpfs 475M 0 475M 0% /dev/shm
tmpfs tmpfs 475M 13M 462M 3% /run
tmpfs tmpfs 475M 0 475M 0% /sys/fs/cgroup
/dev/mapper/klas-root xfs 66G 4.4G 61G 7% /
tmpfs tmpfs 475M 0 475M 0% /tmp
/dev/sda1 xfs 1014M 151M 864M 15% /boot
/dev/mapper/klas-backup xfs 32G 313M 32G 1% /backup
tmpfs tmpfs 95M 0 95M 0% /run/user/0
/dev/sdd1 xfs 186M 12M 175M 6% /resouce/data2
/dev/sdd2 xfs 90M 5.7M 85M 7% /resouce/data3
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=6400 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=25600, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=1368, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# mkfs.xfs /dev/sdb5
meta-data=/dev/sdb5 isize=512 agcount=4, agsize=6400 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=25600, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=1368, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# mkdir /resouce/data1
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# mount /dev/sdb1 /resouce/data
[root@Kylin-V10-sp3 ~]# mount /dev/sdb5 /resouce/data2
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# touch /resouce/data/1.txt
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# touch /resouce/data1/2.txt
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# tree /resouce/
/resouce/
├── data
│ └── 1.txt
├── data1
│ └── 2.txt
├── data2
└── data3
4 directories, 2 files
[root@Kylin-V10-sp3 ~]#
2.4.5 刪除分割槽.
點選檢視程式碼
[root@Kylin-V10-sp3 ~]# df -h
檔案系統 容量 已用 可用 已用% 掛載點
devtmpfs 459M 0 459M 0% /dev
tmpfs 475M 0 475M 0% /dev/shm
tmpfs 475M 13M 462M 3% /run
tmpfs 475M 0 475M 0% /sys/fs/cgroup
/dev/mapper/klas-root 66G 4.4G 61G 7% /
tmpfs 475M 0 475M 0% /tmp
/dev/sda1 1014M 151M 864M 15% /boot
/dev/mapper/klas-backup 32G 313M 32G 1% /backup
tmpfs 95M 0 95M 0% /run/user/0
/dev/sdb1 1017M 40M 978M 4% /resouce/data
/dev/sdd1 186M 12M 175M 6% /resouce/data2
/dev/sdd2 90M 5.7M 85M 7% /resouce/data3
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# umount /dev/sdb1
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# df -h
檔案系統 容量 已用 可用 已用% 掛載點
devtmpfs 459M 0 459M 0% /dev
tmpfs 475M 0 475M 0% /dev/shm
tmpfs 475M 13M 462M 3% /run
tmpfs 475M 0 475M 0% /sys/fs/cgroup
/dev/mapper/klas-root 66G 4.4G 61G 7% /
tmpfs 475M 0 475M 0% /tmp
/dev/sda1 1014M 151M 864M 15% /boot
/dev/mapper/klas-backup 32G 313M 32G 1% /backup
tmpfs 95M 0 95M 0% /run/user/0
/dev/sdd1 186M 12M 175M 6% /resouce/data2
/dev/sdd2 90M 5.7M 85M 7% /resouce/data3
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# fdisk /dev/sdb
歡迎使用 fdisk (util-linux 2.35.2)。
更改將停留在記憶體中,直到您決定將更改寫入磁碟。
使用寫入命令前請三思。
命令(輸入 m 獲取幫助):p
Disk /dev/sdb:1 GiB,1073741824 位元組,2097152 個扇區
磁碟型號:VMware Virtual S
單元:扇區 / 1 * 512 = 512 位元組
扇區大小(邏輯/物理):512 位元組 / 512 位元組
I/O 大小(最小/最佳):512 位元組 / 512 位元組
磁碟標籤型別:dos
磁碟識別符號:0x4abfed3a
裝置 啟動 起點 末尾 扇區 大小 Id 型別
/dev/sdb1 2048 2097151 2095104 1023M 83 Linux
命令(輸入 m 獲取幫助):m
幫助:
DOS (MBR)
a 開關 可啟動 標誌
b 編輯巢狀的 BSD 磁碟標籤
c 開關 dos 相容性標誌
常規
d 刪除分割槽
F 列出未分割槽的空閒區
l 列出已知分割槽型別
n 新增新分割槽
p 列印分割槽表
t 更改分割槽型別
v 檢查分割槽表
i 列印某個分割槽的相關資訊
雜項
m 列印此選單
u 更改 顯示/記錄 單位
x 更多功能(僅限專業人員)
指令碼
I 從 sfdisk 指令碼檔案載入磁碟佈局
O 將磁碟佈局轉儲為 sfdisk 指令碼檔案
儲存並退出
w 將分割槽表寫入磁碟並退出
q 退出而不儲存更改
新建空磁碟標籤
g 新建一份 GPT 分割槽表
G 新建一份空 GPT (IRIX) 分割槽表
o 新建一份的空 DOS 分割槽表
s 新建一份空 Sun 分割槽表
命令(輸入 m 獲取幫助):F
未分割槽的空間 /dev/sdb:0 B,0 個位元組,0 個扇區
單元:扇區 / 1 * 512 = 512 位元組
扇區大小(邏輯/物理):512 位元組 / 512 位元組
命令(輸入 m 獲取幫助):d
已選擇分割槽 1
分割槽 1 已刪除。
命令(輸入 m 獲取幫助):F
未分割槽的空間 /dev/sdb:1023 MiB,1072693248 個位元組,2095104 個扇區
單元:扇區 / 1 * 512 = 512 位元組
扇區大小(邏輯/物理):512 位元組 / 512 位元組
起點 末尾 扇區 大小
2048 2097151 2095104 1023M
命令(輸入 m 獲取幫助):w
分割槽表已調整。
將呼叫 ioctl() 來重新讀分割槽表。
正在同步磁碟。
[root@Kylin-V10-sp3 ~]# fdisk -l | grep sd
Disk /dev/sda:100 GiB,107374182400 位元組,209715200 個扇區
/dev/sda1 * 2048 2099199 2097152 1G 83 Linux
/dev/sda2 2099200 209715199 207616000 99G 8e Linux LVM
Disk /dev/sdb:1 GiB,1073741824 位元組,2097152 個扇區
Disk /dev/sdc:1 GiB,1073741824 位元組,2097152 個扇區
Disk /dev/sdd:2.93 TiB,3221225472000 位元組,6291456000 個扇區
/dev/sdd1 34 390625 390592 190.7M Linux 檔案系統
/dev/sdd2 391168 585727 194560 95M Linux 檔案系統
[root@Kylin-V10-sp3 ~]#
2.5 磁碟分割槽實戰-parted或gdisk ⭐️⭐️⭐️⭐️⭐️
磁碟引導(磁碟分割槽表) | 特點 | 對應的命令 |
---|---|---|
MBR(msdos,dos) | 適用於2TB以內的硬碟,有傳統的主分割槽,擴充套件分割槽,邏 輯分割槽概念. | fdisk(mbr) |
GPT | 適用於各種大型的硬碟,尤 其是2tb以上的硬碟,主分割槽 管夠,128個. | parted(mbr,gpt),gdisk(gpt) |
點選檢視程式碼
# parted 可以使用tab鍵
[root@Kylin-V10-sp3 ~]# parted /dev/sdd
GNU Parted 3.3
使用 /dev/sdd
歡迎使用 GNU Parted!輸入 'help' 來檢視命令列表。
(parted)
(parted) help
align-check TYPE N check partition N for TYPE(min|opt) alignment
help [COMMAND] 列印通用求助資訊,或 COMMAND 的幫助
mklabel,mktable LABEL-TYPE 建立新的磁碟卷標 (分割槽表)
mkpart 分割槽型別 [檔案系統型別] 起始點 結束點 建立一個分割槽
name 編號 名稱 將指定“編號”的分割槽命名為“名稱”
print [devices|free|list,all|數字] 顯示分割槽表、可用裝置、剩餘空間、所有分割槽或特殊分割槽
quit 退出程式
rescue 起始點 終止點 挽救臨近“起始點”、“終止點”的遺失的分割槽
resizepart NUMBER END 改變 NUMBER 的大小
rm NUMBER 刪除編號為 NUMBER 的分割槽
select 裝置 選擇要編輯的裝置
disk_set 旗標 狀態 變更已選裝置上的旗標
disk_toggle [旗標] 切換已選裝置上的旗標狀態
set 編號 旗標 狀態 改變指定“編號”分割槽的旗標
toggle [編號 [旗標]] 切換“編號”分割槽上的“旗標”狀態
unit 單位 設定預設的“單位”
version 顯示目前 GNU Parted 的版本與版權資訊
(parted) mktable gpt
(parted) p
型號:VMware, VMware Virtual S (scsi)
磁碟 /dev/sdd:3221GB
扇區大小 (邏輯/物理):512B/512B
分割槽表:gpt
磁碟標誌:
編號 起始點 結束點 大小 檔案系統 名稱 標誌
(parted) mkpart
對齊檢查 disk_set help mkpart name quit resize rm set unit
align-check disk_toggle mklabel mktable print rescue resizepart select toggle version
(parted) mkpart primary 0 200
警告: The resulting partition is not properly aligned for best performance: 34s % 2048s != 0s
忽略/Ignore/放棄/Cancel? i
(parted) mkpart primary 200 300
(parted) q
資訊: 你可能需要 /etc/fstab。
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# fdisk -l | grep sd
Disk /dev/sda:100 GiB,107374182400 位元組,209715200 個扇區
/dev/sda1 * 2048 2099199 2097152 1G 83 Linux
/dev/sda2 2099200 209715199 207616000 99G 8e Linux LVM
Disk /dev/sdb:1 GiB,1073741824 位元組,2097152 個扇區
/dev/sdb1 2048 2097151 2095104 1023M 83 Linux
Disk /dev/sdc:1 GiB,1073741824 位元組,2097152 個扇區
Disk /dev/sdd:2.93 TiB,3221225472000 位元組,6291456000 個扇區
/dev/sdd1 34 390625 390592 190.7M Linux 檔案系統
/dev/sdd2 391168 585727 194560 95M Linux 檔案系統
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# df -hT
檔案系統 型別 容量 已用 可用 已用% 掛載點
devtmpfs devtmpfs 459M 0 459M 0% /dev
tmpfs tmpfs 475M 0 475M 0% /dev/shm
tmpfs tmpfs 475M 6.9M 468M 2% /run
tmpfs tmpfs 475M 0 475M 0% /sys/fs/cgroup
/dev/mapper/klas-root xfs 66G 4.4G 61G 7% /
tmpfs tmpfs 475M 0 475M 0% /tmp
/dev/sda1 xfs 1014M 151M 864M 15% /boot
/dev/mapper/klas-backup xfs 32G 313M 32G 1% /backup
tmpfs tmpfs 95M 0 95M 0% /run/user/0
/dev/sdb1 xfs 1017M 40M 978M 4% /resouce/data
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# mkfs.xfs /dev/sdd1
meta-data=/dev/sdd1 isize=512 agcount=4, agsize=12206 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=48824, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=1368, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# mkfs.xfs /dev/sdd2
meta-data=/dev/sdd2 isize=512 agcount=4, agsize=6080 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=24320, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=1368, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# mkdir /resouce/data3
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# mount /dev/sdd1 /resouce/data2
[root@Kylin-V10-sp3 ~]# mount /dev/sdd2 /resouce/data3
3.新盤分割槽-格式化-掛載⭐️⭐️⭐️⭐️⭐️
3.1 拿到一塊硬碟使用流程
步驟 | 說明 | 指令 |
---|---|---|
磁碟分割槽 | 劃分隔斷 | fdisk,parted |
格式化(建立檔案系統) | 裝修,裝修風格 | mkfs.xfs mkfs.ext4 |
掛載(給裝置設定入口) | 安裝門窗,入住 | mount |
3.2 對/dev/sdc建立1個分割槽使用所有空間.
點選檢視程式碼
[root@Kylin-V10-sp3 ~]# fdisk /dev/sdc
歡迎使用 fdisk (util-linux 2.35.2)。
更改將停留在記憶體中,直到您決定將更改寫入磁碟。
使用寫入命令前請三思。
裝置不包含可識別的分割槽表。
建立了一個磁碟識別符號為 0x026afacf 的新 DOS 磁碟標籤。
命令(輸入 m 獲取幫助):p
Disk /dev/sdc:1 GiB,1073741824 位元組,2097152 個扇區
磁碟型號:VMware Virtual S
單元:扇區 / 1 * 512 = 512 位元組
扇區大小(邏輯/物理):512 位元組 / 512 位元組
I/O 大小(最小/最佳):512 位元組 / 512 位元組
磁碟標籤型別:dos
磁碟識別符號:0x026afacf
命令(輸入 m 獲取幫助):n
分割槽型別
p 主分割槽 (0 primary, 0 extended, 4 free)
e 擴充套件分割槽 (邏輯分割槽容器)
選擇 (預設 p):p
分割槽號 (1-4, 預設 1):
第一個扇區 (2048-2097151, 預設 2048):
最後一個扇區,+/-sectors 或 +size{K,M,G,T,P} (2048-2097151, 預設 2097151):
建立了一個新分割槽 1,型別為“Linux”,大小為 1023 MiB。
命令(輸入 m 獲取幫助):p
Disk /dev/sdc:1 GiB,1073741824 位元組,2097152 個扇區
磁碟型號:VMware Virtual S
單元:扇區 / 1 * 512 = 512 位元組
扇區大小(邏輯/物理):512 位元組 / 512 位元組
I/O 大小(最小/最佳):512 位元組 / 512 位元組
磁碟標籤型別:dos
磁碟識別符號:0x026afacf
裝置 啟動 起點 末尾 扇區 大小 Id 型別
/dev/sdc1 2048 2097151 2095104 1023M 83 Linux
命令(輸入 m 獲取幫助):w
分割槽表已調整。
將呼叫 ioctl() 來重新讀分割槽表。
正在同步磁碟。
[root@Kylin-V10-sp3 ~]#
3.3 建立檔案系統
# make filesystem
# mkfs 磁碟分割槽
[root@Kylin-V10-sp3 ~]# mkfs.xfs /dev/sdc1
meta-data=/dev/sdc1 isize=512 agcount=4, agsize=65472 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=261888, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=1566, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@Kylin-V10-sp3 ~]#
3.4 掛載 ⭐️⭐️⭐️⭐️⭐️
- 掛載:給Linux裝置一個入口,我們在Linux中透過入口進入裝置.
- 如果不掛載,裝置就相當於是個沒有視窗沒有門的監獄,無法進入與使用.
- 掛載點:裝置的入口,目錄.
- 比如/mnt/目錄一般用於臨時掛載.
# 掛載:mount 裝置 入口(掛載點)
# 取消掛載:
umount 掛載點
umount 裝置
[root@Kylin-V10-sp3 ~]# mount /dev/sdc1 /resouce/data1
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# df -h
檔案系統 容量 已用 可用 已用% 掛載點
devtmpfs 459M 0 459M 0% /dev
tmpfs 475M 0 475M 0% /dev/shm
tmpfs 475M 13M 462M 3% /run
tmpfs 475M 0 475M 0% /sys/fs/cgroup
/dev/mapper/klas-root 66G 4.4G 61G 7% /
tmpfs 475M 0 475M 0% /tmp
/dev/sda1 1014M 151M 864M 15% /boot
/dev/mapper/klas-backup 32G 313M 32G 1% /backup
tmpfs 95M 0 95M 0% /run/user/0
/dev/sdb5 95M 6.0M 89M 7% /resouce/data2
/dev/sdd2 90M 5.7M 85M 7% /resouce/data3
/dev/sdb1 95M 6.0M 89M 7% /resouce/data
/dev/sdc1 1017M 40M 978M 4% /resouce/data1
3.5 掛載的永久生效
# 方案01: /etc/rc.local
chmod +x /etc/rc.d/rc.local
把命令mount /dev/sdb1 /data/ 寫入到/etc/rc.local即可.
# 方案02: 專業方案/etc/fstab 檔案 ⭐ ⭐ ⭐ ⭐ ⭐
# fs (filesystem) tab(table)檔案系統掛載表格
# mount /dev/sdb1 /data/改造為符合fstab檔案的格式.
# fstab實現永久掛載配置的格式:
/dev/mapper/klas-root / xfs defaults 0 0
/dev/mapper/klas-backup /backup xfs defaults 0 0
UUID=0651de56-e8f8-4c0c-993b-4523c83f4e82 /boot xfs defaults 0 0
/dev/mapper/klas-swap none swap defaults 0 0
/dev/sdc1 /resouce/data1 xfs defaults 0 0
'''
第1列 裝置名字或UUID
第2列 掛載點
第3列 檔案系統型別xfs,ext4要與格式化的時候一致
第4列 掛載選項/引數 使用defaults表示預設即可.
第5列 是否進行dump匯出備份.一般關閉.
第6列 是否程序fsck磁碟檢查.一般關閉
'''
4.raid
4.1 概述
# 物理伺服器使用.
# 對硬碟進行批次,統一管理.
# raid磁碟冗餘陣列,用來管理硬碟. 使用Raid卡實現.
# 好處(無法同時滿足)
可以擁有更高的容量.(4tb*10 = 40tb)
可以擁有更高的效能.(讀寫效能)
可以擁有更高的冗餘,安全(備份).
4.2 raid級別(不同的磁碟管理方式)⭐️⭐️⭐️⭐️⭐️
- 根據我們所選擇的raid級別的不同,我們可以獲取更高容量,效能,冗餘.
- 溫馨提示:不同廠商,raid實現,特點有些區別.
Raid級別 | 應用場景 |
---|---|
Raid 0 | 追求效能,不要求冗餘(安全) |
Raid 1 | 監控伺服器,備份服務,系統根分割槽 |
Raid 5 | 訪問量不高,讀寫不高,效能要求不高(寫) |
Raid 10 | 效能高,冗餘,給重要服務 |
5. 磁碟故障:磁碟空間不足系列⭐️⭐️⭐️⭐️⭐️
- 提示: no space left on device 磁碟空間不足.
5.1 常見原因
磁碟空間不足原因
- block剩餘數量(磁碟空間),一般是一些較大檔案導致. 日常理解磁碟空間不足,linux,windows,手機.
- inode剩餘數量不足
- block被佔用,檔案為徹底刪除導致.
5.2 block原因,一些大檔案.
5.2.1 故障復現
故障復現
# /usr/ /var/ /etc/
cd /var/log/
for n in {1..20}
do
dd if=/dev/zero of=1g-$n bs=1M count=1024
done
5.2.2 排查流程
- 檢查當前系統磁碟使用情況: df -h
- 一步一步排查(哪個目錄或檔案)大量佔用空間 du -sh
#1.檢視整體
df -h 檢視哪個磁碟分割槽空間不足.
透過du 檢視
#2.一層一層排查
看第1層目錄
du -sh /* |sort -hrk1
du -sh /var/* |sort -rhk1
du -sh /var/log/* |sort -rhk1
#3.定位到檔案或目錄 確認後再刪除.
5.2.3 小結
遇到磁碟空間不足,會使用df命令和du命令排查.
[root@Kylin-V10-sp3 ~]# du -sh /etc/* | sort -hr | head
9.7M/etc/selinux
9.3M/etc/udev
920K/etc/pki
5.3 inode大量被佔用導致磁碟空間不足
磁碟分割槽格式化後inode總數是固定的,每建立1個檔案就要佔用1個inode.
隨著時間推移一些服務發生異常,大量生成小檔案,最終導致inode不足
5.3.1 故障復現
點選檢視程式碼
# 建立1個小的磁碟分割槽,然後掛載使用.
#1.建立分割槽(資料檔案,塊檔案)
[root@Kylin-V10-sp3 ~]# dd if=/dev/zero of=/resouce/inode/200m bs=1M count=200
記錄了200+0 的讀入
記錄了200+0 的寫出
209715200位元組(210 MB,200 MiB)已複製,0.244658 s,857 MB/s
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# file /resouce/inode/200m
/resouce/inode/200m: data
[root@Kylin-V10-sp3 ~]#
#2.格式化
[root@Kylin-V10-sp3 ~]# mkfs.xfs /resouce/inode/200m
meta-data=/resouce/inode/200m isize=512 agcount=4, agsize=12800 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=51200, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=1368, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# file /resouce/inode/200m
/resouce/inode/200m: SGI XFS filesystem data (blksz 4096, inosz 512, v2 dirs)
[root@Kylin-V10-sp3 ~]#
#3.掛載
[root@Kylin-V10-sp3 ~]# mount /resouce/inode/200m /mnt
[root@Kylin-V10-sp3 ~]#
#4.檢查 df -h df -i
[root@Kylin-V10-sp3 ~]# df -h
檔案系統 容量 已用 可用 已用% 掛載點
devtmpfs 459M 0 459M 0% /dev
tmpfs 475M 0 475M 0% /dev/shm
tmpfs 475M 6.9M 468M 2% /run
tmpfs 475M 0 475M 0% /sys/fs/cgroup
/dev/mapper/klas-root 66G 4.6G 61G 7% /
tmpfs 475M 0 475M 0% /tmp
/dev/sda1 1014M 151M 864M 15% /boot
/dev/mapper/klas-backup 32G 313M 32G 1% /backup
tmpfs 95M 0 95M 0% /run/user/0
/dev/loop0 195M 12M 184M 6% /mnt
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# cd /mnt/
[root@Kylin-V10-sp3 /mnt]#
#5.建立大量檔案 echo {1..400000} | xargs touch
[root@Kylin-V10-sp3 /mnt]# touch {01..102400}.txt
touch: 無法建立 '102366.txt': 裝置上沒有空間
touch: 無法建立 '102367.txt': 裝置上沒有空間
touch: 無法建立 '102368.txt': 裝置上沒有空間
[root@Kylin-V10-sp3 /mnt]#
5.3.2 排查流程
思路
建立檔案提示磁碟空間不足.
透過df -h檢視發現磁碟空間還有空間,df -i檢視inode是否耗盡.
df -h 沒有滿.
df -i 不足了.
排查: find / -type d -size +1M #目錄大小(檔名)大於1M
解決:
刪除小檔案
cd /test/inode
ls | xargs rm
點選檢視程式碼
[root@Kylin-V10-sp3 /mnt]# df -i
檔案系統 Inodes 已用(I) 可用(I) 已用(I)% 掛載點
devtmpfs 117317 529 116788 1% /dev
tmpfs 121363 1 121362 1% /dev/shm
tmpfs 121363 787 120576 1% /run
tmpfs 121363 17 121346 1% /sys/fs/cgroup
/dev/mapper/klas-root 34134016 129672 34004344 1% /
tmpfs 121363 10 121353 1% /tmp
/dev/sda1 524288 339 523949 1% /boot
/dev/mapper/klas-backup 16664576 1171 16663405 1% /backup
tmpfs 121363 6 121357 1% /run/user/0
/dev/loop0 102400 102368 32 100% /mnt
[root@Kylin-V10-sp3 /mnt]#
[root@Kylin-V10-sp3 /mnt]# df -h
檔案系統 容量 已用 可用 已用% 掛載點
devtmpfs 459M 0 459M 0% /dev
tmpfs 475M 0 475M 0% /dev/shm
tmpfs 475M 6.9M 468M 2% /run
tmpfs 475M 0 475M 0% /sys/fs/cgroup
/dev/mapper/klas-root 66G 4.6G 61G 7% /
tmpfs 475M 0 475M 0% /tmp
/dev/sda1 1014M 151M 864M 15% /boot
/dev/mapper/klas-backup 32G 313M 32G 1% /backup
tmpfs 95M 0 95M 0% /run/user/0
/dev/loop0 195M 66M 130M 34% /mnt
[root@Kylin-V10-sp3 /mnt]#
[root@Kylin-V10-sp3 /mnt]# rm -f ./*
-bash: /usr/bin/rm: 引數列表過長
[root@Kylin-V10-sp3 /mnt]# rm -f .*
rm: 無法刪除 '.': 是一個目錄
rm: 無法刪除 '..': 是一個目錄
[root@Kylin-V10-sp3 /mnt]# rm -f *.txt
[root@Kylin-V10-sp3 /mnt]#
[root@Kylin-V10-sp3 /mnt]#
[root@Kylin-V10-sp3 /mnt]# ll
總用量 0
[root@Kylin-V10-sp3 /mnt]#
[root@Kylin-V10-sp3 /mnt]# df -i
檔案系統 Inodes 已用(I) 可用(I) 已用(I)% 掛載點
devtmpfs 117317 529 116788 1% /dev
tmpfs 121363 1 121362 1% /dev/shm
tmpfs 121363 789 120574 1% /run
tmpfs 121363 17 121346 1% /sys/fs/cgroup
/dev/mapper/klas-root 34134016 129672 34004344 1% /
tmpfs 121363 10 121353 1% /tmp
/dev/sda1 524288 339 523949 1% /boot
/dev/mapper/klas-backup 16664576 1171 16663405 1% /backup
tmpfs 121363 6 121357 1% /run/user/0
/dev/loop0 102400 3 102397 1% /mnt
[root@Kylin-V10-sp3 /mnt]#
5.3.3 刪除大量小檔案方案
# 建立或刪除大量檔案就會有錯誤提示.
touch {1..500000}
-bash: /usr/bin/touch: 引數列表過長
argument list too long
# 透過管道|xargs方式實現.
| vs |xargs
| 傳遞的字串 wc -l 或grep 或sort
|xargs 後面命令的引數
命令選項 命令的不同功能-f -r
命令引數 命令處理的目標 使用者名稱,檔名字,目錄名 rm -fr lidao.txt
#建立大量小檔案的環境
cd /oldboy/test
echo {1..500000}|xargs touch
echo a{1..500000}|xargs touch
#方案01
#刪除
ls |xargs rm -f
#如果上面還是無法刪除,透過下面的方式縮小範圍.
ls a* |xargs rm -f
ls 1* |xargs rm -f
#方案02:刪除檔案所在的目錄 記錄下目錄的許可權,所有者.
5.3.4 小結
# inode有總數,建立大量小檔案佔用inode,日積月累就會導致inode數量不足.inode用光了,建立檔案提示磁碟空間不足.
# 現象:
建立檔案提示磁碟空間不足,或修改檔案.
# 排查:
df -h看看是否為block導致.
df -i檢視inode使用情況.
inode滿了,檢視哪個目錄下面有大量小檔案: find / -type d -size +10M
ll -h 檢視目錄大小find -type d 目錄大小,目錄下檔名所佔空間.
# 解決:
確定可以刪除後.
ls |xargs rm -f
ls 1* |xargs rm -f
ls a* |xargs rm -f
5.4 block佔用,檔案未被徹底刪除導致的故障
檔案被徹底刪除條件(檔案刪除原理):
-
- rm刪除,硬連結數為0.(沒有入口)
-
- 檔案沒有被任何程序佔用. 日誌.
5.4.1 故障復現
點選檢視程式碼
# 第一個視窗建立一個大檔案,並用檢視大檔案(程序一直在後臺)
[root@Kylin-V10-sp3 ~]# dd if=/dev/zero of=/var/log/big.log bs=1M count=2000
記錄了2000+0 的讀入
記錄了2000+0 的寫出
2097152000位元組(2.1 GB,2.0 GiB)已複製,3.84818 s,545 MB/s
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# tail -f /var/log/big.log
已終止
[root@Kylin-V10-sp3 ~]#
# 第二個視窗刪除這個大檔案(表面上看刪除成功,但儲存未釋放)
[root@Kylin-V10-sp3 ~]# rm -f /var/log/big.log
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# lsof | grep delete | sort -rnk7 | head -5
tail 2088 root 3r REG 253,0 2097152000 203324588 /var/log/big.log (deleted)
sssd_be 829 root 19r REG 253,0 10406312 135364755 /var/lib/sss/mc/initgroups (deleted)
sssd 759 root 16r REG 253,0 10406312 135364755 /var/lib/sss/mc/initgroups (deleted)
polkitd 749 polkitd 4r REG 253,0 10406312 135364755 /var/lib/sss/mc/initgroups (deleted)
dbus-daem 735 dbus 6r REG 253,0 10406312 135364755 /var/lib/sss/mc/initgroups (deleted)
[root@Kylin-V10-sp3 ~]#
5.4.2 排查流程
如何定位到是檔案未徹底刪除導致的故障?
df -h 提示磁碟空間不足,du -sh檢視沒有滿,佔用的空間與df的差異.
思路
# 精確定位到哪個檔案未徹底刪除
yum install -y lsof # 下載lsof
lsof |grep delete #檔案被刪除但是還正使用中.
lsof |grep delete
# 程序命令 pid 檔案大小
# 檔名 刪除標記
[root@Kylin-V10-sp3 ~]# lsof | grep delete | sort -rnk7 | head -5
tail 2088 root 3r REG 253,0 2097152000 203324588 /var/log/big.log (deleted)
sssd_be 829 root 19r REG 253,0 10406312 135364755 /var/lib/sss/mc/initgroups (deleted)
sssd 759 root 16r REG 253,0 10406312 135364755 /var/lib/sss/mc/initgroups (deleted)
# 重啟程序或結束對應程序
kill pid
點選檢視程式碼
[root@Kylin-V10-sp3 ~]# df -h
檔案系統 容量 已用 可用 已用% 掛載點
devtmpfs 459M 0 459M 0% /dev
tmpfs 475M 0 475M 0% /dev/shm
tmpfs 475M 6.9M 468M 2% /run
tmpfs 475M 0 475M 0% /sys/fs/cgroup
/dev/mapper/klas-root 66G 6.5G 59G 10% /
tmpfs 475M 0 475M 0% /tmp
/dev/sda1 1014M 151M 864M 15% /boot
/dev/mapper/klas-backup 32G 313M 32G 1% /backup
tmpfs 95M 0 95M 0% /run/user/0
/dev/loop0 195M 12M 184M 6% /mnt
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# du -h / | sort -hr | head -5
du: 無法訪問 '/proc/2180/task/2180/fd/3': 沒有那個檔案或目錄
du: 無法訪問 '/proc/2180/task/2180/fdinfo/3': 沒有那個檔案或目錄
du: 無法訪問 '/proc/2180/fd/4': 沒有那個檔案或目錄
du: 無法訪問 '/proc/2180/fdinfo/4': 沒有那個檔案或目錄
4.2G /
3.3G /usr
1.3G /usr/lib
903M /usr/share
738M /usr/lib/firmware
[root@Kylin-V10-sp3 ~]# du -h /usr | sort -hr | head -5
3.3G /usr
1.3G /usr/lib
903M /usr/share
738M /usr/lib/firmware
537M /usr/lib64
[root@Kylin-V10-sp3 ~]# lsof | grep delete | sort -rnk7 | head -5
tail 2088 root 3r REG 253,0 2097152000 203324588 /var/log/big.log (deleted)
sssd_be 829 root 19r REG 253,0 10406312 135364755 /var/lib/sss/mc/initgroups (deleted)
sssd 759 root 16r REG 253,0 10406312 135364755 /var/lib/sss/mc/initgroups (deleted)
polkitd 749 polkitd 4r REG 253,0 10406312 135364755 /var/lib/sss/mc/initgroups (deleted)
dbus-daem 735 dbus 6r REG 253,0 10406312 135364755 /var/lib/sss/mc/initgroups (deleted)
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# lsof | head -5
COMMAND PID TID TASKCMD USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd 1 root cwd DIR 253,0 4096 128 /
systemd 1 root rtd DIR 253,0 4096 128 /
systemd 1 root txt REG 253,0 1616104 67394388 /usr/lib/systemd/systemd
systemd 1 root mem REG 253,0 1581928 26345 /usr/lib64/libm-2.28.so
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# kill 2088
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# lsof | grep delete | sort -rnk7 | head -5
sssd_be 829 root 19r REG 253,0 10406312 135364755 /var/lib/sss/mc/initgroups (deleted)
sssd 759 root 16r REG 253,0 10406312 135364755 /var/lib/sss/mc/initgroups (deleted)
polkitd 749 polkitd 4r REG 253,0 10406312 135364755 /var/lib/sss/mc/initgroups (deleted)
dbus-daem 735 dbus 6r REG 253,0 10406312 135364755 /var/lib/sss/mc/initgroups (deleted)
sssd_nss 842 root 17r REG 253,0 8406312 135364753 /var/lib/sss/mc/passwd (deleted)
[root@Kylin-V10-sp3 ~]#
5.4.3 小結
# 檔案刪除原理(條件):
硬連結數為0(rm)
檔案沒有程序呼叫(程序佔用為0)
# 排查:
df -h
du -sh 分割槽
df -h 顯示空間不足,du -sh顯示空間充足.
程序佔用,檔案未徹底刪除導致的磁碟空間不足.
# 解決:
lsof |grep detele查詢程序,服務,選擇大的.
重啟服務(流量低谷期).
5.5 總結
6. 磁碟分割槽方案 ⭐⭐
6.1 思路
# 系統安裝之前我們對系統磁碟分割槽的規劃.
linux常用分割槽
/ 根分割槽
/boot 分割槽 存放引導,存放核心
swap 交換分割槽(佔用磁碟空間)
/data/分割槽 存放資料
/home/ /usr/ 不推薦了.
# 未來一些場景中,我們需要提升系統效能,我們就需要關閉swap.
分割槽方案 | 劃分方法 |
---|---|
通用方案-服務上沒有重要的資料 | /boot/ 分割槽存放引導,核心 1-2G swap 是記憶體的1.5-2倍最大8G.後天(k8s,資料 庫)關閉. / 根分割槽,剩餘所有都給根分割槽. |
通用方案-服務上有重要的資料 | /boot/ swap / 系統分割槽40G-200G /data/ 資料分割槽剩餘多少給多少 存放資料 |
通用方案-不知道伺服器作用 | 先劃分 /boot/ swap / 剩餘空間留著. |
6.2 部署centos 7/麒麟v10
# 進行手動分割槽
/boot/
swap
/
/data/
# 在/data/下面建立檔案
# 重新安裝系統重新格式化/,/boot swap 保留/data /dev/sda5,等待安裝結束.
# 手動掛載/data/測試,資料是否還在
mkdir -p /data
mount /dev/sda5 /data/
# 檢查/data/目錄下面資料是否還在.
修改/etc/fstab
7. swap配置 ⭐
swap 交換分割槽,記憶體不足臨時充當記憶體.
基於效能考慮,會考慮關閉swap,尤其是一些服務k8s,mysql.
7.1 增加swap
點選檢視程式碼
# dd 建立指定大小的檔案
# if input file從哪裡讀取檔案. /dev/zero 字元檔案,不斷輸出0.
# of output file寫入到哪裡
# bs block size 每次讀多少
# count 次數
[root@Kylin-V10-sp3 ~]# mkdir /swap
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# dd if=/dev/zero of=/swap/1g bs=1M count=1024
記錄了1024+0 的讀入
記錄了1024+0 的寫出
1073741824位元組(1.1 GB,1.0 GiB)已複製,3.36927 s,319 MB/s
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# ll -h /swap/1g
-rw-r--r-- 1 root root 1.0G 9月 8 09:31 /swap/1g
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# file /swap/1g
/swap/1g: data
[root@Kylin-V10-sp3 ~]#
# 格式化(成為swap)
[root@Kylin-V10-sp3 ~]# mkswap /swap/1g
mkswap: /swap/1g:不安全的許可權 0644,建議使用 0600。
正在設定交換空間版本 1,大小 = 1024 MiB (1073737728 個位元組)
無標籤,UUID=5aeca3cd-f7ab-44d8-ac90-815fcc3b3c8d
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# file /swap/1g
/swap/1g: Linux swap file, 4k page size, little endian, version 1, size 262143 pages, 0 bad pages, no label, UUID=5aeca3cd-f7ab-44d8-ac90-815fcc3b3c8d
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# free -h
total used free shared buff/cache available
Mem: 948Mi 213Mi 66Mi 6.0Mi 668Mi 587Mi
Swap: 2.1Gi 6.0Mi 2.1Gi
[root@Kylin-V10-sp3 ~]#
# 掛載(swap啟動)
[root@Kylin-V10-sp3 ~]# swapon /swap/1g
swapon: /swap/1g:不安全的許可權 0644,建議使用 0600。
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# chmod 600 /swap/1g
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# free -h
total used free shared buff/cache available
Mem: 948Mi 214Mi 63Mi 6.0Mi 670Mi 586Mi
Swap: 3.1Gi 6.0Mi 3.1Gi
[root@Kylin-V10-sp3 ~]#
# 永久生效
# vim /etc/fatab 追加 /swap/1g swap swap defaults 0 0
/dev/mapper/klas-root / xfs defaults 0 0
/dev/mapper/klas-backup /backup xfs defaults 0 0
UUID=0651de56-e8f8-4c0c-993b-4523c83f4e82 /boot xfs defaults 0 0
/dev/mapper/klas-swap none swap defaults 0 0
/swap/1g swap swap defaults 0 0
7.2 關閉swap
# 臨時關閉所有快取
[root@Kylin-V10-sp3 ~]# swapoff -a
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# free -h
total used free shared buff/cache available
Mem: 948Mi 215Mi 211Mi 12Mi 521Mi 580Mi
Swap: 0B 0B 0B
[root@Kylin-V10-sp3 ~]#
# 開啟剛剛建立的快取
[root@Kylin-V10-sp3 ~]# swapon /swap/1g
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# free -h
total used free shared buff/cache available
Mem: 948Mi 215Mi 210Mi 12Mi 521Mi 579Mi
Swap: 1.0Gi 0B 1.0Gi
[root@Kylin-V10-sp3 ~]#
# 開啟以前就有的快取
[root@Kylin-V10-sp3 ~]# swapon /dev/mapper/klas-swap
[root@Kylin-V10-sp3 ~]#
[root@Kylin-V10-sp3 ~]# free -h
total used free shared buff/cache available
Mem: 948Mi 216Mi 209Mi 12Mi 521Mi 579Mi
Swap: 3.1Gi 0B 3.1Gi
[root@Kylin-V10-sp3 ~]#
# 配置檔案永久關閉
修改/etc/fstab檔案找出包含swap的行,新增上 # 註釋掉即可.
7.3 小結
執行java服務或系統記憶體較小,可以配置swap. (oom故障 out of memory記憶體不足.)
執行特定的服務或系統記憶體充足,可以關閉swap提升系統效能.
dd,mkswap(格式化),swapon/swapoff