2021-05-12 14:32:11
關於 Linux 儲存管理深入理解
關於 Linux 儲存管理深入理解
物理硬碟 ==> 分割區規劃 ==> 格式化 ==> 讀/寫文件
分割區
MBR 不大於2TB
傳統MBR分割區模式
1~4個主分割區 //理論上
0~3個主分割區+1個擴充套件分割區(n個邏輯分割區) //實際上
注意事項
– MBR分割區表只能記錄4個主分割區,編號範圍1-4
– 當有必要使用4個以上分割區時,需要建立擴充套件分割區(占主分割區編號),擴充套件分割區最多只能有1個
– 擴充套件分割區作為一個中間性質的容器,從其中再劃分出的分割區空間即為邏輯分割區
格式化
賦予檔案系統
資料在空間中,儲存的規則,排列的方式
NTFS(windows 預設)
EXT4 RHEL6預設
XFS RHEL7預設
SWAP 虛擬記憶體
目錄結構
/ 根目錄 :存放所有資料(Linux系統的起點)
/dev 裝置檔案
磁碟表示方式
hd,表示IDE裝置
sd,表示SCSI裝置
硬碟分割區管理
磁軌:track 每個磁軌 63 個磁區
磁區:sector 每個磁區 512 個位元組
磁頭:head
柱面:cylinder 柱面大小=磁軌容量盤面數量
硬碟總容量=柱面數磁頭數單磁軌磁區數單個容量磁區大小(一般初始為512位元組)
MBR/msdos 分割區模式
1~4個主分割區,或者0~3個主分割區+1個擴充套件分割區(n個邏輯分割區)
最大支援容量位2.2TB的磁碟
擴充套件分割區不能格式化
一,檢視但前有那些磁碟
[root@localhost ~]# ls /dev/vd*
/dev/vda /dev/vda1 /dev/vdb
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 10G 0 disk
└─vda1 253:1 0 10G 0 part /
vdb 253:16 0 10G 0 disk
二.如何劃分分割區
使用fdisk分割區工具(之支援MBR)
檢視分割區
fdisk -l
例:
[root@localhost ~]# fdisk -l /dev/vdb
磁碟 /dev/vdb:10.7 GB, 10737418240 位元組,20971520 個磁區
Units = 磁區 of 1 * 512 = 512 bytes
磁區大小(邏輯/物理):512 位元組 / 512 位元組
I/O 大小(最小/最佳):512 位元組 / 512 位元組
修改硬碟的分割區表
fdisk 硬碟裝置
例:
[root@localhost ~]# fdisk /dev/vdb
歡迎使用 fdisk (util-linux 2.23.2)。
更改將停留在記憶體中,直到您決定將更改寫入磁碟。
使用寫入命令前請三思。
Device does not contain a recognized partition table
使用磁碟識別符號 0xada4991d 建立新的 DOS 磁碟標籤。
命令(輸入 m 獲取幫助):
常用互動指令
m 列出指令幫助
p 檢視現在的分割區表
n 新建分割區
d 刪除分割區
q 放棄更改並退出
w 儲存更改並退出
例:
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 10G 0 disk
└─vda1 253:1 0 10G 0 part /
vdb 253:16 0 10G 0 disk
├─vdb1 253:17 0 1G 0 part /part1
├─vdb2 253:18 0 2G 0 part /part2
└─vdb3 253:19 0 3G 0 part /part3
三.格式化分割區
常用的格式化工具
mkfs 工具集
mkfs.檔案系統 分割區裝置路徑
mkfs.ext3 分割區裝置路徑
mkfs.ext4 分割區裝置路徑
mkfs.xfs 分割區裝置路徑
mkfs.vfat -F 32 分割區裝置路徑
例:
[root@localhost ~]# mkfs.
mkfs.btrfs mkfs.ext2 mkfs.ext4 mkfs.minix mkfs.vfat
mkfs.cramfs mkfs.ext3 mkfs.fat mkfs.msdos mkfs.xfs(linux7有)
四.掛載使用
[root@localhost ~]# mkdir /part1
[root@localhost ~]# mkdir /part2
[root@localhost ~]# mkdir /part3
[root@localhost ~]# mount /dev/vdb1 /part1
[root@localhost ~]# mount /dev/vdb2 /part2
[root@localhost ~]# mount /dev/vdb3 /part3
五.檢視掛載使用情況
[root@localhost ~]# df -h
檔案系統 容量 已用 可用 已用% 掛載點
/dev/vda1 10G 3.1G 6.9G 31% /
devtmpfs 906M 0 906M 0% /dev
tmpfs 921M 80K 921M 1% /dev/shm
tmpfs 921M 17M 904M 2% /run
tmpfs 921M 0 921M 0% /sys/fs/cgroup
172.25.254.254:/home/guests 10G 3.2G 6.9G 32% /home/guests
/dev/vdb1 976M 1.3M 908M 1% /part1
/dev/vdb2 2.0G 6.0M 1.8G 1% /part2
/dev/vdb3 3.0G 33M 3.0G 2% /part3
擴充套件:
緩解根分割區壓力
可以將新建一個分割區vdb5
mount /dev/vdb5 /mnt
cp -r /home/ /mnt/
rm -rf /home/
umount /mnt/
mount /dev/vdb5 /home
六.劃分擴充套件分割區
# fdisk /dev/vdb
p 檢視分割區表
n 建立新的分割區
----->回車---->起始回車----->結束回車 將所有空間給擴充套件分割區
p 檢視分割區表
n 建立新的分割區----->起始回車------>結束+1G
n 建立新的分割區----->起始回車------>結束+1G
p 檢視分割區表
w 儲存並退出
[root@localhost ~]# ls /dev/vdb*
/dev/vdb /dev/vdb1 /dev/vdb2 /dev/vdb3
[root@localhost ~]# partprobe #重新整理分割區表
[root@localhost ~]# ls /dev/vdb*
/dev/vdb /dev/vdb1 /dev/vdb2 /dev/vdb3 /dev/vdb4 /dev/vdb5 /dev/vdb6
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 10G 0 disk
└─vda1 253:1 0 10G 0 part /
vdb 253:16 0 10G 0 disk
├─vdb1 253:17 0 1G 0 part /part1
├─vdb2 253:18 0 2G 0 part /part2
├─vdb3 253:19 0 3G 0 part /part3
├─vdb4 253:20 0 1K 0 part
├─vdb5 253:21 0 1G 0 part
└─vdb6 253:22 0 1G 0 part
開機自動掛載 /etc/fstab
裝置路徑 掛載點 型別 引數 備份標記 檢測順序
/dev/vdb3 /part3 xfs defaults 0 0
/dev/vdb2 /part2 ext4 defaults 0 0
[root@server0 ~]# vi /etc/fstab
[root@server0 ~]# tail -2 /etc/fstab
/dev/vdb3 /part3 xfs defaults 0 0
/dev/vdb2 /part2 ext4 defaults 0 0
驗證:
mount -a
檢測/etc/fstab開機自動掛載組態檔,格式是否正確
檢測/etc/fstab中,書寫完成,但當前沒有掛載的裝置,進行掛載
df -h
補充: blkid 檔案目錄 #檢視分割區UUID
總結
1.lsblk 檢視硬碟資訊
2.fdisk 分割區
3.partprobe 重新整理 新的分割區表
4.mkfs.xfs 格式化分割區
5.mount 掛載測試
6./etc/fstab 開機自動掛載
練習: 劃分/dev/vdc[1-3]主分割區10G,劃分擴充套件分割區,在劃分兩個邏輯分割區10G
fdisk /dev/vdc
p 檢視分割區表
n 建立新的分割區
------>回車--->回車--->回車--->在last結束時+10G
n 建立新的分割區
----->回車---->起始回車----->結束回車 將所有空間給擴充套件分割區
p 檢視分割區表
n 建立新的分割區----->起始回車------>結束+10G
p 檢視分割區表
w 儲存並退出
LVM邏輯卷
1.管理分散的空間
2.邏輯捲動態的擴大與縮減
LVM工作方式
零散空間儲存 ---> 整合的虛擬磁碟 ---> 虛擬的分割區
物理卷PV 捲組VG 邏輯卷LV
首先將眾多的物理卷組(PV)成卷組(VG),在從卷組中劃分出邏輯卷(LV)
LVM管理工具集
scan 掃描
create 建立
display 顯示
remove 刪除
extends 擴充套件
一.建立物理卷與捲組
vgcreate 捲組名 空閒分割區
lvcreate -L 大小 -n 名稱 捲組名
[root@server0 ~]# vgcreate myvg /dev/vdc[1-2]
Physical volume "/dev/vdc1" successfully created
Physical volume "/dev/vdc2" successfully created
[root@server0 ~]# pvs #顯示物理捲基本資訊
PV VG Fmt Attr PSize PFree
/dev/vdc1 myvg lvm2 a-- 10.00g 10.00g
/dev/vdc2 myvg lvm2 a-- 10.00g 10.00g
[root@server0 ~]# vgs #顯示卷組基本資訊
VG #PV #LV #SN Attr VSize VFree
myvg 2 0 0 wz--n- 19.99g 19.99g
二.建立邏輯卷(邏輯卷的大小不能超過捲組)
lvcreate -L 邏輯卷大小 - n 邏輯卷的名稱 捲組名
[root@server0 ~]# lvcreate -L 16G -n mylv myvg
Logical volume "mylv" created
[root@server0 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
myvg 2 1 0 wz--n- 19.99g 3.99g
[root@server0 ~]# lvs
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
mylv myvg -wi-a----- 16.00g
三.使用邏輯卷
[root@server0 ~]# mkfs.ext4 /dev/myvg/mylv
[root@server0 ~]# mkdir /lvm
[root@server0 ~]# vim /etc/fstab
...
/dev/myvg/mylv /lvm ext4 defaults 0 0
...
[root@server0 ~]# mount -a
[root@server0 ~]# df -h
邏輯捲擴充套件(支援線上操作)
lvextend -L 新大小 /dev/捲組名/邏輯卷名
一.卷組有足夠的剩餘空間
1.直接擴充套件邏輯卷的空間
[root@server0 ~]# lvs
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
mylv myvg -wi-a----- 16.00g
[root@server0 ~]# lvextend -L 18G /dev/myvg/mylv
Extending logical volume mylv to 18.00 GiB
Logical volume mylv successfully resized
[root@server0 ~]# lvs
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
mylv myvg -wi-ao---- 18.00g
[root@server0 ~]# df -h
檔案系統 容量 已用 可用 已用% 掛載點
/dev/vda1 10G 3.1G 7.0G 31% /
devtmpfs 906M 0 906M 0% /dev
tmpfs 921M 80K 921M 1% /dev/shm
tmpfs 921M 17M 904M 2% /run
tmpfs 921M 0 921M 0% /sys/fs/cgroup
/dev/vdb3 3.0G 33M 3.0G 2% /part3
/dev/vdb2 2.0G 6.0M 1.8G 1% /part2
/dev/mapper/myvg-mylv 16G 45M 15G 1% /lvm
2.擴充套件檔案系統的大小
擴充套件ext4檔案系統:resize2fs /dev/myvg/mylv
[root@server0 ~]# resize2fs /dev/myvg/mylv
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/myvg/mylv is mounted on /lvm; on-line resizing required
old_desc_blocks = 2, new_desc_blocks = 3
The filesystem on /dev/myvg/mylv is now 4718592 blocks long.
[root@server0 ~]# df -h
檔案系統 容量 已用 可用 已用% 掛載點
/dev/vda1 10G 3.1G 7.0G 31% /
devtmpfs 906M 0 906M 0% /dev
tmpfs 921M 80K 921M 1% /dev/shm
tmpfs 921M 17M 904M 2% /run
tmpfs 921M 0 921M 0% /sys/fs/cgroup
/dev/vdb3 3.0G 33M 3.0G 2% /part3
/dev/vdb2 2.0G 6.0M 1.8G 1% /part2
/dev/mapper/myvg-mylv 18G 44M 17G 1% /lvm
擴充套件xfs檔案系統:xfs_growfs /dev/myvg/mylv
二.卷組沒有剩餘空間
vgextend 捲組名 空閒分割區
[root@server0 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
myvg 2 1 0 wz--n- 19.99g 1.99g
1.先擴充套件卷組
[root@server0 ~]# vgextend myvg /dev/vdc3
Physical volume "/dev/vdc3" successfully created
Volume group "myvg" successfully extended
2.擴充套件邏輯卷的空間
3.擴充套件檔案系統大小
邏輯卷縮減 (運維幾乎不用)
先縮減檔案系統 在縮減空間
[root@server0 ~]# resize2fs /dev/myvg/mylv 10G
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/myvg/mylv is mounted on /lvm; on-line resizing required
resize2fs: On-line shrinking not supported
[root@server0 ~]# umount /lvm
[root@server0 ~]# resize2fs /dev/myvg/mylv 10G
resize2fs 1.42.9 (28-Dec-2013)
請先執行 'e2fsck -f /dev/myvg/mylv'.
[root@server0 ~]# e2fsck -f /dev/myvg/mylv
e2fsck 1.42.9 (28-Dec-2013)
第一步: 檢查inode,塊,和大小
第二步: 檢查目錄結構
第3步: 檢查目錄連線性
Pass 4: Checking reference counts
第5步: 檢查簇概要資訊
/dev/myvg/mylv: 11/1638400 files (0.0% non-contiguous), 146871/6553600 blocks
[root@server0 ~]# resize2fs /dev/myvg/mylv 10G
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/myvg/mylv to 2621440 (4k) blocks.
The filesystem on /dev/myvg/mylv is now 2621440 blocks long.
[root@server0 ~]# mount -a
[root@server0 ~]# df -h
檔案系統 容量 已用 可用 已用% 掛載點
/dev/vda1 10G 3.1G 7.0G 31% /
devtmpfs 906M 0 906M 0% /dev
tmpfs 921M 80K 921M 1% /dev/shm
tmpfs 921M 17M 904M 2% /run
tmpfs 921M 0 921M 0% /sys/fs/cgroup
/dev/vdb3 3.0G 33M 3.0G 2% /part3
/dev/vdb2 2.0G 6.0M 1.8G 1% /part2
/dev/mapper/myvg-mylv 9.8G 37M 9.3G 1% /lvm
PE:捲組劃分空間的單位,4M(預設)
建立卷組的時候設定PE大小
vgcreate -s PE大小 卷組名 空閒分割區
lvcreate -l PE的個數 -n 邏輯卷名 卷組名
RHEL6 CE
請建立一個邏輯卷 大小位250M,名字為lvmtest (因為PE預設時4M 分割區只會分給252M )
[root@server0 ~]# vgchange -s 1M myvg
Volume group "myvg" successfully changed
[root@server0 ~]# vgdisplay
...
PE Size 1.00 MiB
...
[root@server0 ~]# lvcreate -l 250 -n test myvg # 250個PE(1M)
或是
[root@server0 ~]# lvcreate -L 250M -n test myvg
管理交換空間
相當於虛擬記憶體
當實體記憶體不夠用時,使用磁碟空間來模擬記憶體
在一定成都上緩解記憶體不足的問題
交換分割區:以空閒分割區充當的交換空間
[root@server0 ~]# mkswap /dev/vdc5 #格式化SWAP命令
正在設定交換空間版本 1,大小 = 10485756 KiB
無標籤,UUID=7034ba6a-908d-49c3-b213-c75be9c94625
[root@server0 ~]# swapon /dev/vdc5 #啟動交換空間
[root@server0 ~]# swapon -s #檢視SWAP狀態
檔名 型別 大小 已用 許可權
/dev/vdc5 partition 10485756 0 -1
[root@server0 ~]# mkswap /dev/vdc6
[root@server0 ~]# swapon /dev/vdc6
[root@server0 ~]# swapon -s
檔名 型別 大小 已用 許可權
/dev/vdc5 partition 10485756 0 -1
/dev/vdc6 partition 10485756 0 -2
[root@server0 ~]# swapoff /dev/vdc5 #停止交換空間
[root@server0 ~]# swapon -s
檔名 型別 大小 已用 許可權
/dev/vdc6 partition 10485756 0 -1
開機自動掛載
[root@server0 ~]# vi /etc/fstab
...
/dev/vdc5 swap swap defaults 0 0
...
[root@server0 ~]# swapon -a #專用於檢測swap分割區
[root@server0 ~]# swapon -s
檔名 型別 大小 已用 許可權
/dev/vdc5 partition 10485756 0 -2
/dev/vdc6 partition 10485756 0 -1
使用UUID 完成開機自動掛載
blkid 檔案目錄 #檢視裝置UUID的資訊
[root@server0 ~]# blkid /dev/vdc6
/dev/vdc6: UUID="85202124-a90a-4a7b-a2ce-4d2ba6b68d4b" TYPE="swap"
[root@server0 ~]# vi /etc/fstab
...
UUID="85202124-a90a-4a7b-a2ce-4d2ba6b68d4b" swap swap defaults 0 0
...
[root@server0 ~]# swapon -s #檢視掛載情況
檔名 型別 大小 已用 許可權
/dev/vdc5 partition 10485756 0 -1
[root@server0 ~]# swapon -a #掛載
[root@server0 ~]# swapon -s
檔名 型別 大小 已用 許可權
/dev/vdc5 partition 10485756 0 -1
/dev/vdc6 partition 10485756 0 -2
RAID 磁碟陣列
廉價冗餘磁碟陣列(Redundant Arrays of Inexpensive Disks)
通過硬體/軟體技術,將多個較小/低速的磁碟整合成一個大磁碟
陣列的價值:提升I/O效率,硬體級別的資料冗餘
不同RAID級別的功能,特性個不相同
RAID 0 ,條帶模式(至少要兩塊磁碟)
同一個文件分散存放在不同磁碟
並行寫入以提高效率
磁碟儲存利用率:100%
缺點:沒有可靠性
RAID 1 ,映象模式(至少要兩塊磁碟)
一個文件複製成多份,分別寫入不同磁碟
多份備份提高可靠性,效率無提升
磁碟儲存利用率:<=50%
缺點:效率不高
RAID 5 ,高價效比模式(至少需要三塊) #常用
相當於RAID 0 和RAID 1 的折中方案
需要至少一塊磁碟的容量來存放校驗資料
能夠通過校驗值和一部份資料推理出缺失的檔案
一般買四塊 多出的一塊做熱備份 有一個壞了頂替上 將壞掉的資料移交到其中
磁碟儲存利用率:N-1/N
RAID 6 高價效比/可靠模式(一般銀行用)
-相當於擴充套件的RAID5陣列,提供2份獨立校驗方案
-需要至少兩塊磁碟的容量來存放校驗資料
磁碟儲存利用率:N-2/N
RAID 0+1 (先做RAID 0 再作 1 )/RAID 1+0(先做RAID 1 再作 0)(至少四塊)
至少要四塊 RAID 0+1 底層兩兩先做RAID 0 然後兩兩結合 在作RAID 1
-整合RAID 0 ,RAID 1 的優勢
-並行存取提高效率,映象寫入提高可靠性
磁碟儲存利用率:<=50%
RAID陣列實現方式
硬RAID :由RAID控制卡管理陣列
-主機板-->陣列卡-->磁碟-->作業系統-->資料
軟RAID :由作業系統來管理陣列
-主機板 -- > 磁碟 -- > 作業系統 -- > RAID軟體 -- >資料
本文永久更新連結地址:http://www.linuxidc.com/Linux/2018-02/150713.htm
相關文章