LVM

邏輯卷管理器(LVM)

LVM (Logical Volume Manager,Version 2)
dm: device mapper,將一個或多個底層塊設備組織成一個邏輯設備的模塊
設備名:/dev/dm-#
軟鏈接:/dev/mapper/VG_NAME-LV_NAME    /dev/VG_NAME/LV_NAME

1.創建邏輯卷

/dev/sdb /dev/sdc 兩塊硬盤

 pvcreate /dev/sdb /dev/sdc
 vgcreate [-s 16m] vg0 /dev/sdb /dev/sdc
 lvcreate -L 10G -n mysql vg0
 lvcreate -L 8G -n nginx vg0
 mkfs.ext4 /dev/vg0/mysql
 mkfs.ext4 /dev/vg0/nginx
 mkdir /mnt/nginx /mnt/mysql
 mount /dev/vg0/mysql /mnt/mysql
 mount /dev/vg0/nginx /mnt/nginx
 永久掛載:
 blkid | sed -nr "/mapper/s#.*/vg0-(.*): UUID=\"(.*)\" .*\"(.*)\"#UUID=\2 /mnt/\1   \t\t  \3 \t  defaults\t  0 0 #p" >> /etc/fstab
 mount -a

2.擴展卷組

 echo -e "n\n\n+5G\nw\n" | fdisk /dev/sda
 pvcreate /dev/sda6
 vgextend vg0 /dev/sda6

3.擴展邏輯卷

 vgdisplay #查看卷組是否有空間
 # xfs文件系統
 lvextend -L +5G /dev/vg0/nginx
 xfs_grows /dev/vg0/nginx
 #ext文件系統
 lvextend -L +5G /dev/vg0/mysql
 resize2fs /dev/vg0/mysql
 或
 lvextend -r -L +5G /dev/vg0/mysql

4.縮減邏輯卷

縮減前先要取消掛載邏輯卷

 備份要縮減的邏輯卷的數據
 umount /dev/vg0/mysql 
 fsck -f /dev/vg0/mysql #檢查文件系統
 resize2fs /dev/vg0/mysql 5G #將該邏輯捲縮減爲5G
 lvreduce -L 5G /dev/vg0/mysql
 mount -a #重新掛載

5.邏輯卷的快照及還原

 touch /mnt/mysql/file{1..3} #創建三個文件來驗證快照功能
 touch /mnt/nginx/file{1..3}
 lvcreate -s -n nginx_snap -L 1G /dev/vg0/nginx #xfs文件系統 爲nginx邏輯卷創建一個大小爲1G的快照
 lvcreate -s -n mysql_snap -p r -L 1G /dev/vg0/mysql #ext4文件系統
 mkdir /mnt/nginx_snap /mnt/mysql_snap
 mount -o nouuid /dev/vg0/nginx_snap /mnt/nginx_snap #xfs
 mount /dev/vg0/mysql_snap /mnt/mysql_snap #ext4
 修改/mnt/mysql 和/mnt/nginx的數據
 卸載掛載的邏輯卷及快照
 umount /mnt/mysql
 umount /mnt/mysql_snap
 umount /mnt/nginx
 umount /mnt/nginx_snap
 lvconvert --merge /dev/vg0/mysql_snap
 lvconvert --merge /dev/vg0/nginx_snap
 mount -a #重新掛載

6.刪除PV

 vgdisplay
 pvmove /dev/sda6 #將sda6上的數據移到vg0其他空間
 vgreduce vg0 /dev/sda6
 pvremove /dev/sda6

7.刪除邏輯卷

 umount /mnt/mysql
 umount /mnt/nginx
 lvremove /dev/vg0/nginx
 lvremove /dev/vg0/mysql
 vgremove vg0
 pvremove /dev/sdb /dev/sdc
 sed -i -e  '/mysql/d' -e '/nginx/d' /etc/fstab
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章