4.10/4.11/4.12 lvm講解html
4.13 磁盤故障小案例node
4.10/4.11/4.12 lvm講解linux
LVM講解centos
LVM是邏輯盤卷管理(Logical Volume Manager)的簡稱,它是Linux環境下對磁盤分區進行管理的一種機制,LVM是創建在硬盤和分區之上的一個邏輯層,來提升磁盤分區管理的靈活性。app
LVM的工做原理其實很簡單,它就是經過將底層的物理硬盤抽象的封裝起來,而後以邏輯卷的方式呈現給上層應用。在傳統的磁盤管理機制中,咱們的上層應用是直接訪問文件系統,從而對底層的物理硬盤進行讀取,而在LVM中,其經過對底層的硬盤進行封裝,當咱們對底層的物理硬盤進行操做時,其再也不是針對於分區進行操做,而是經過一個叫作邏輯卷的東西來對其進行底層的磁盤管理操做。好比說我增長一個物理硬盤,這個時候上層的服務是感受不到的,由於呈現給上層服務的是以邏輯卷的方式。spa
LVM最大的特色就是能夠對磁盤進行動態管理。由於邏輯卷的大小是能夠動態調整的,並且不會丟失現有的數據。若是咱們新增長了硬盤,其也不會改變現有上層的邏輯卷。做爲一個動態磁盤管理機制,邏輯卷技術大大提升了磁盤管理的靈活性。3d
基本的邏輯卷管理概念:orm
PV(Physical Volume)- 物理卷 htm
物理卷在邏輯卷管理中處於最底層,它能夠是實際物理硬盤上的分區,也能夠是整個物理硬盤,也能夠是raid設備。blog
VG(Volumne Group)- 卷組
卷組創建在物理卷之上,一個卷組中至少要包括一個物理卷,在卷組創建以後可動態添加物理捲到卷組中。一個邏輯卷管理系統工程中能夠只有一個卷組,也能夠擁有多個卷組。
LV(Logical Volume)- 邏輯卷
邏輯卷創建在卷組之上,卷組中的未分配空間能夠用於創建新的邏輯卷,邏輯卷創建後能夠動態地擴展和縮小空間。系統中的多個邏輯卷能夠屬於同一個卷組,也能夠屬於不一樣的多個卷組。
關係圖以下:
PE(Physical Extent)- 物理塊
LVM 默認使用4MB的PE區塊,而LVM的LV最多僅能含有65534個PE (lvm1 的格式),所以默認的LVM的LV最大容量爲4M*65534/(1024M/G)=256G。PE是整個LVM 最小的儲存區塊,也就是說,其實咱們的資料都是由寫入PE 來處理的。簡單的說,這個PE 就有點像文件系統裏面的block 大小。因此調整PE 會影響到LVM 的最大容量!不過,在 CentOS 6.x 之後,因爲直接使用 lvm2 的各項格式功能,所以這個限制已經不存在了。
具體參考連接 :https://www.cnblogs.com/mchina/p/linux-centos-logical-volume-manager-lvm.html
命令(輸入 m 獲取幫助):p 磁盤 /dev/sdb:21.5 GB, 21474836480 字節,41943040 個扇區 Units = 扇區 of 1 * 512 = 512 bytes 扇區大小(邏輯/物理):512 字節 / 512 字節 I/O 大小(最小/最佳):512 字節 / 512 字節 磁盤標籤類型:dos 磁盤標識符:0xfa4f00a2 設備 Boot Start End Blocks Id System /dev/sdb1 2048 2099199 1048576 83 Linux /dev/sdb2 2099200 4196351 1048576 83 Linux /dev/sdb3 4196352 6293503 1048576 83 Linux 命令(輸入 m 獲取幫助):t #t更改分區類型 分區號 (1-3,默認 3):1 Hex 代碼(輸入 L 列出全部代碼):8e #8e表示lvm類型 已將分區「Linux」的類型更改成「Linux LVM」 命令(輸入 m 獲取幫助):p 磁盤 /dev/sdb:21.5 GB, 21474836480 字節,41943040 個扇區 Units = 扇區 of 1 * 512 = 512 bytes 扇區大小(邏輯/物理):512 字節 / 512 字節 I/O 大小(最小/最佳):512 字節 / 512 字節 磁盤標籤類型:dos 磁盤標識符:0xfa4f00a2 設備 Boot Start End Blocks Id System /dev/sdb1 2048 2099199 1048576 8e Linux LVM /dev/sdb2 2099200 4196351 1048576 8e Linux LVM /dev/sdb3 4196352 6293503 1048576 8e Linux LVM 命令(輸入 m 獲取幫助):w #設置完畢保存退出 The partition table has been altered! Calling ioctl() to re-read partition table. 正在同步磁盤。 [root@zgxlinux-01 ~]# pvcreate /dev/sdb1 WARNING: ext4 signature detected on /dev/sdb1 at offset 1080. Wipe it? [y/n]: y #提示是否給ext4作簽名 Wiping ext4 signature on /dev/sdb1. Physical volume "/dev/sdb1" successfully created. [root@zgxlinux-01 ~]# pvcreate /dev/sdb2 Physical volume "/dev/sdb2" successfully created. [root@zgxlinux-01 ~]# pvcreate /dev/sdb3 Physical volume "/dev/sdb3" successfully created. [root@zgxlinux-01 ~]# pvdisplay #顯示物理卷屬性 "/dev/sdb2" is a new physical volume of "1.00 GiB" --- NEW Physical volume --- PV Name /dev/sdb2 VG Name PV Size 1.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID 7tZ50T-CSyl-T3db-yWXk-i9Sm-efFo-W2jdzV "/dev/sdb1" is a new physical volume of "1.00 GiB" --- NEW Physical volume --- PV Name /dev/sdb1 VG Name PV Size 1.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID F7yo1d-0SQb-HDuX-CxbJ-aYRT-3HGW-FAPKdv "/dev/sdb3" is a new physical volume of "1.00 GiB" --- NEW Physical volume --- PV Name /dev/sdb3 VG Name PV Size 1.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID XEP3Z8-vAtL-4aNo-4SGq-jHzi-dkiT-4TGlGx [root@zgxlinux-01 ~]# pvdisplay -s #-s以短格式顯示物理卷屬性 Device "/dev/sdb2" has a capacity of 1.00 GiB Device "/dev/sdb1" has a capacity of 1.00 GiB Device "/dev/sdb3" has a capacity of 1.00 GiB
11 、lvm(中)
命令:vgcreate #建立卷組
[root@zgxlinux-01 ~]# vgcreate vg1 /dev/sdb1 /dev/sdb2 #用兩個物理卷建立一個卷組 Volume group "vg1" successfully created 命令:vgdisplay #查看卷組 或者: vgs [root@zgxlinux-01 ~]# vgdisplay --- Volume group --- VG Name vg1 System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 2 Act PV 2 VG Size 1.99 GiB PE Size 4.00 MiB Total PE 510 Alloc PE / Size 0 / 0 Free PE / Size 510 / 1.99 GiB VG UUID q3lCsU-Vsfv-RsAe-gb5n-ctve-v8e6-42CO86 [root@zgxlinux-01 ~]# vgs VG #PV #LV #SN Attr VSize VFree vg1 2 0 0 wz--n- 1.99g 1.99g [root@zgxlinux-01 ~]# lvcreate -L 100M -n lv1 vg1 #從vg1卷組中劃分100M出來爲邏輯卷並命名爲lv1。 Logical volume "lv1" created. [root@zgxlinux-01 ~]# mkfs.ext4 /dev/vg1/lv1 #格式化lv1邏輯卷爲ext4格式。 [root@zgxlinux-01 ~]# mount /dev/vg1/lv1 /mnt/ # 掛載到mnt下 [root@zgxlinux-01 ~]# df -h 文件系統 容量 已用 可用 已用% 掛載點 /dev/sda3 28G 1.2G 27G 5% / devtmpfs 481M 0 481M 0% /dev tmpfs 492M 0 492M 0% /dev/shm tmpfs 492M 7.5M 485M 2% /run tmpfs 492M 0 492M 0% /sys/fs/cgroup /dev/sda1 197M 102M 95M 52% /boot tmpfs 99M 0 99M 0% /run/user/0 /dev/mapper/vg1-lv1 93M 1.6M 85M 2% /mnt #如何擴容邏輯卷 一、lvresize -L 300M /dev/vg1/lv1 從新設置卷大小 二、e2fsck -f /dev/vg1/lv1 檢查磁盤錯誤 (ext4執行) 三、resize2fs /dev/vg1/lv1 更新邏輯卷(ext4執行) 四、xf_growfs /dev/vg1/lv1 xfs文件系統須要執行 [root@zgxlinux-01 ~]# umount /mnt #首先卸載掛載 [root@zgxlinux-01 ~]# lvresize -L 300M /dev/vg1/lv1 #增長邏輯分區爲300M New size (75 extents) matches existing size (75 extents). [root@zgxlinux-01 ~]# e2fsck -f /dev/vg1/lv1 #檢查磁盤錯誤 e2fsck 1.42.9 (28-Dec-2013) 第一步: 檢查inode,塊,和大小 第二步: 檢查目錄結構 第3步: 檢查目錄鏈接性 Pass 4: Checking reference counts 第5步: 檢查簇概要信息 /dev/vg1/lv1: 11/25688 files (9.1% non-contiguous), 8896/102400 blocks [root@zgxlinux-01 ~]# resize2fs /dev/vg1/lv1 #更新邏輯卷 resize2fs 1.42.9 (28-Dec-2013) Resizing the filesystem on /dev/vg1/lv1 to 307200 (1k) blocks. The filesystem on /dev/vg1/lv1 is now 307200 blocks long. [root@zgxlinux-01 ~]# mount /dev/vg1/lv1 /mnt/ #從新掛載 [root@zgxlinux-01 ~]# df -h 文件系統 容量 已用 可用 已用% 掛載點 /dev/sda3 28G 1.2G 27G 5% / devtmpfs 481M 0 481M 0% /dev tmpfs 492M 0 492M 0% /dev/shm tmpfs 492M 7.5M 485M 2% /run tmpfs 492M 0 492M 0% /sys/fs/cgroup /dev/sda1 197M 102M 95M 52% /boot tmpfs 99M 0 99M 0% /run/user/0 /dev/mapper/vg1-lv1 287M 2.0M 266M 1% /mnt #如何縮減邏輯卷 (xfs格式不支持) 一、先umount 二、efsck -f /dev /vg1/lv1 檢查磁盤錯誤 (ext) 三、resize2fs /dev/vg1/lv1 100M 更新邏輯卷信息(ext) 四、lvresize -L 100M /dev/vg1/lv1 從新設置卷大小 [root@zgxlinux-01 ~]# umount /mnt [root@zgxlinux-01 ~]# e2fsck -f /dev/vg1/lv1 e2fsck 1.42.9 (28-Dec-2013) 第一步: 檢查inode,塊,和大小 第二步: 檢查目錄結構 第3步: 檢查目錄鏈接性 Pass 4: Checking reference counts 第5步: 檢查簇概要信息 /dev/vg1/lv1: 11/75088 files (9.1% non-contiguous), 15637/307200 blocks [root@zgxlinux-01 ~]# resize2fs /dev/vg1/lv1 100M resize2fs 1.42.9 (28-Dec-2013) Resizing the filesystem on /dev/vg1/lv1 to 102400 (1k) blocks. The filesystem on /dev/vg1/lv1 is now 102400 blocks long. [root@zgxlinux-01 ~]# lvresize -L 100M /dev/vg1/lv1 WARNING: Reducing active logical volume to 100.00 MiB. THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce vg1/lv1? [y/n]: y Size of logical volume vg1/lv1 changed from 300.00 MiB (75 extents) to 100.00 MiB (25 extents). Logical volume vg1/lv1 successfully resized. [root@zgxlinux-01 ~]# lvdisplay --- Logical volume --- LV Path /dev/vg1/lv1 LV Name lv1 VG Name vg1 LV UUID 2KAD0z-Ion3-Pwz6-G8dZ-S7DZ-BARe-K9WjWr LV Write Access read/write LV Creation host, time zgxlinux-01, 2018-09-24 16:26:34 +0800 LV Status available # open 0 LV Size 100.00 MiB Current LE 25 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:0 [root@zgxlinux-01 ~]# mount /dev/vg1/lv1 /mnt/ [root@zgxlinux-01 ~]# df -h 文件系統 容量 已用 可用 已用% 掛載點 /dev/sda3 28G 1.2G 27G 5% / devtmpfs 481M 0 481M 0% /dev tmpfs 492M 0 492M 0% /dev/shm tmpfs 492M 7.5M 485M 2% /run tmpfs 492M 0 492M 0% /sys/fs/cgroup /dev/sda1 197M 102M 95M 52% /boot tmpfs 99M 0 99M 0% /run/user/0 /dev/mapper/vg1-lv1 93M 1.6M 85M 2% /mnt
12 、lvm(下)
#如何擴展卷組
一、fdisk /dev/sdb 新增/dev/sdb5 (邏輯分區8e) 2G 2 、pvcreate /dev/sdb5 #建立物理卷 3 、vgextend vg1 /dev/sdb5 四、 lvresize -L 100M /dev/vg1/lv1 從新設置卷大小
4.13 、磁盤故障小案例
#修改配置文件fstab配置文件後,登錄界面遇到這個問題,進如配置文件刪除修改配置就能夠了。