Linux之邏輯卷的管理與創建(記不住就多敲幾次)

假定1,某公司因後續線上要業務拓展,在Linux服務器需要做可擴展分區,sdb 5G 和 sdc 10G (最後的vg用ext4文件系統類型 要求創建兩個分區c1 4G和c2 6G) 系統上還有一塊硬盤sda 200G 可用空間大約剩餘100G,,當lvm卷空間不夠用時,後續往裏添加空間。如何實現?


注意事項,如果是xfs文件系統類型,只能實現擴展空間,不能實現縮減空間。

1,查看分區詳情

[Wed Mar 27 16:49
 root@Centos7 ~]$ lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0  200G  0 disk 
├─sda1   8:1    0    1G  0 part /boot
├─sda2   8:2    0   50G  0 part /
├─sda3   8:3    0   30G  0 part /data
├─sda4   8:4    0  512B  0 part 
├─sda5   8:5    0    2G  0 part [SWAP]
└─sda6   8:6    0   44G  0 part 
sdb      8:16   0    5G  0 disk 
sdc      8:32   0   10G  0 disk 
sr0     11:0    1   10G  0 rom  
sr1     11:1    1  3.7G  0 rom  
[Wed Mar 27 16:49
 root@Centos7 ~]$ lsblk -f
NAME   FSTYPE  LABEL             UUID                                 MOUNTPOINT
sda                                                                   
├─sda1 xfs                       3f505604-afe5-47e7-b9aa-f978f9da273a /boot
├─sda2 xfs                       3887764a-0bd5-4125-a4a6-0dd8d23365ff /
├─sda3 xfs                       0c016dc7-e184-4a35-afef-c732bc9a2be8 /data
├─sda4                                                                
├─sda5 swap                      9aca7647-9117-4ec4-980f-8710e9da9e46 [SWAP]
└─sda6 xfs                       9d22c572-0007-4202-8134-c9a34610df38 
sdb                                                                   
sdc                                                                   
sr0    iso9660 CentOS 7 x86_64   2018-11-26-14-22-58-00               
sr1    iso9660 CentOS_6.10_Final 2018-06-29-11-20-20-00

2,在sdc上創建兩個分區sdc1和sdc2

fdisk -l
n
p
回車
回車
+4G
t
8e
n
p
回車
回車
回車
t
回車
8e
w
新硬盤創建分區默認識別,否則使用partprobe同步分區信息(只針對centos7)
Linux之邏輯卷的管理與創建(記不住就多敲幾次)

3,創建pv,vg vg0,lv mysql

pvcreate /dev/sd{b,c1,c2}
vgcreate vg0 /dev/sd{b,c1,c2}
lvcreate -n mysql -L 10G vg0
mkfs.ext4 /dev/vg0/mysql
臨時掛載到/mnt/mysql
mount /dev/vg0/mysql /mnt/mysql
如果要永久生效寫到fstab中。
Linux之邏輯卷的管理與創建(記不住就多敲幾次)
Linux之邏輯卷的管理與創建(記不住就多敲幾次)
Linux之邏輯卷的管理與創建(記不住就多敲幾次)

4,如果lv的空間不夠用了,而vg裏還有空間,可以實現線上擴展空間,如下
先vgs看下還剩多少可擴展空間,然後全部加上

lvextend -r -L +4.98g /dev/vg0/mysql
(或者 )
lvextend -L +4.98g /dev/vg0/mysql | lvextend -l +100%free /dev/vg0/mysql
resize2fs /dev/vg0/mysql (ext系列)
xfs_growfs /dev/vg0/mysql (xfs系列)
Linux之邏輯卷的管理與創建(記不住就多敲幾次)
Linux之邏輯卷的管理與創建(記不住就多敲幾次)

如果繼續又滿了,那沒辦法,只能藉助sda的剩餘空間來進行vg空間擴展了。
添加sda7,分配5G空間,調整分區標識爲8e,然後就是pvcreate vgextend lvextend 擴展成功。

fdisk /dev/sda
n
回車
+5G
t
7
8e
w
partprobe
pvcreate /dev/sda7
vgextend vg0 /dev/sda7
lvextend -r -L +5g /dev/vg0/mysql
Linux之邏輯卷的管理與創建(記不住就多敲幾次)

7,如何進行縮減lv呢?首先需要umount,然後考慮內部文件佔用大小,數據有丟失風險,不建議縮減lv ,卸載後先檢查文件系統,然後再進行縮減。縮減成功後再掛載上即可。

umount /mnt/mysql
e2fsck /dev/vg0/mysql
resize2fs /dev/vg0/mysql 10G 此步驟爲縮減文件系統大小到10G,必做,
lvreduce -L -5G /dev/vg0/mysql 此步驟爲縮減邏輯卷大小。與前一步驟不能顛倒

8,爲/dev/vg0/mysql創建快照mysql_snapshot。然後刪除/mnt/mysql下的文件,通過快照還原被刪除文件。(注意:在lv裏創建文的件系統掛載情況下即可創建snapshot,但還原快照時需要卸載該文件系統。)

lvcreate -L 100M -s -n mysql_snapshot -p r /dev/vg0/mysql
rm -rf /mnt/mysql/fstab
umount /mnt/mysql/
lvconvert --merge /dev/vg0/mysql_snapshot
mount /dev/vg0/mysql /mnt/mysql/
ll /mnt/mysql/

9,如果發現pv裏的某塊硬盤亮黃燈要壞了,需要將此硬盤移除,那麼就需要將pv裏的pe移動到其他加入到pv的設備上。pv裏剩餘的pe必須要能夠容納壞的pe數量,否則無法移動pe。移動pe時,對掛載的數據lv內的數據不會造成損壞。

pvmove /dev/sda2

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章