linux邏輯卷管理器LVM及其快照
lvm中文翻譯為邏輯卷管理器 lvm 的作法是將幾個物理的分割槽通關軟體組合成一塊獨立的大硬碟(VG),然後將這塊大硬碟再經過成為可以使用的分割槽LV,最終就能掛載使用了。 lvm 的主要作用是實現一個可以彈性調整容量的檔案系統上,而不是在新建一個性能為主的磁碟上。
PE是整個LVM的最小儲存單位,lv的大小就與LV內的PE總數有關。 pv 物理卷 vg 卷使用者組 lv 邏輯卷
lvm實作流程 1.新增一塊磁碟,分一個擴充套件分割槽 並分成個4個邏輯分割槽
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 200M 0 part /boot
├─sda2 8:2 0 4G 0 part [SWAP]
└─sda3 8:3 0 15.8G 0 part /
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 1G 0 part
├─sdb2 8:18 0 1K 0 part
├─sdb5 8:21 0 2G 0 part
├─sdb6 8:22 0 2G 0 part
├─sdb7 8:23 0 2 G 0 part
└─sdb8 8:24 0 2G 0 part
sr0 11:0 1 4.2G 0 rom /mnt
2.建立物理卷
與pv有關的命令 pvcreate :將物理分割槽新建成為pv pvscan : 查詢目前系統裡面任何具有pv的磁碟 pvdisplay :顯示出目前系統上面的pv狀態 pvremove : 將pv屬性刪除,讓該分割槽不具有pv屬性
將sdb5,6,7,8 四個個分割槽成為pv,
root@localhost ~]# pvcreate /dev/sdb{5,6,7,8}
Physical volume "/dev/sdb5" successfully created.
Physical volume "/dev/sdb6" successfully created.
Physical volume "/dev/sdb7" successfully created.
Physical volume "/dev/sdb8" successfully created.
檢視系統裡面具有pv的磁碟
[root@localhost ~]# pvscan
PV /dev/sdb8 lvm2 [2.00 GiB]
PV /dev/sdb7 lvm2 [2.00 GiB]
PV /dev/sdb6 lvm2 [2.00 GiB]
PV /dev/sdb5 lvm2 [2.00 GiB]
Total: 4 [8.00 GiB] / in use: 0 [0 ] / in no VG: 4 [8.00 GiB]
最後一行是 總共pv容量 和已經使用pv容量
2.卷組建立階段 與vg相關的命令 vgcreate :建立卷組 vgscan : 查詢系統上面是否有vg存在 vgdisplay : 顯示系統上面vg狀態 vgextend :在vg內增加額外的pv vgreduce :在vg內刪除pv vgchange :設定vg是否啟動 vgremove :刪除一個vg
與pv不同的是,vg的名稱是自定義的!
將/dev/sdb5,6,7 新建一個vg 名字為 myvg
[root@localhost ~]# vgcreate myvg /dev/sdb{5,6,7}
Volume group "myvg" successfully created
有一個分割槽沒有用掉
[root@localhost ~]# pvscan
PV /dev/sdb5 VG myvg lvm2 [<2.00 GiB / <2.00 GiB free]
PV /dev/sdb6 VG myvg lvm2 [<2.00 GiB / <2.00 GiB free]
PV /dev/sdb7 VG myvg lvm2 [<2.00 GiB / <2.00 GiB free]
PV /dev/sdb8 lvm2 [2.00 GiB]
Total: 4 [<7.99 GiB] / in use: 3 [<5.99 GiB] / in no VG: 1 [2.00 GiB]
增加vg容量 vgextend
[root@localhost ~]# vgextend myvg /dev/sdb8
Volume group "myvg" successfully extended
3.邏輯卷階段
lvcreate :新建lv lvscan :查詢系統上的lv lvdisplay :顯示系統上面的lv狀態 lvextend :增加lv容量 lvreduce :減少lv容量 lvremove:刪除一個lv lvresize :對lv進行容量大小的調整
建立lv名字為mylv 大小為 2G 從卷組中建立
[root@localhost ~]# lvcreate -L 2G -n mylv /dev/myvg
Logical volume "mylv" created.
4.格式化分割槽
[root@localhost ~]# mkfs -t xfs /dev/myvg/mylv
meta-data=/dev/myvg/mylv isize=512 agcount=4, agsize=131072 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=524288, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
5.掛載
[root@localhost ~]# mount /dev/myvg/mylv /mnt
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 16G 3.8G 13G 24% /
devtmpfs 902M 0 902M 0% /dev
tmpfs 912M 0 912M 0% /dev/shm
tmpfs 912M 8.6M 904M 1% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/mapper/myvg-mylv 2.0G 33M 2.0G 2% /mnt
/dev/sda1 197M 113M 84M 58% /boot
tmpfs 183M 0 183M 0% /run/user/0
放大lv容量
1擴大lv 增加1Gb 容量
[root@localhost ~]# lvextend -L +1G /dev/myvg/mylv
Size of logical volume myvg/mylv changed from 2.00 GiB (512 extents) to 3.00 GiB (768 extents).
Logical volume myvg/mylv successfully resized.
2.擴大檔案系統
xfs檔案系統擴大
[root@localhost ~]# xfs_growfs /dev/myvg/mylv
meta-data=/dev/mapper/myvg-mylv isize=512 agcount=4, agsize=131072 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=524288, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 524288 to 786432
ext4 檔案系統擴大
resize2fs /dev/myvg/mylv
lvm系統快照 快照就是將當時的系統檔案資訊儲存下來,將來若有任何資料變動,原始資料會被移到快照區。 lv的快照必須要和lv在在同一個vg上面 。
快照建立
1.檢視vg裡面還剩下多少容量
[[email protected] ~]# vgdisplay
--- Volume group ---
VG Name myvg
System ID
Format lvm2
Metadata Areas 4
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 4
Act PV 4
VG Size 7.98 GiB
PE Size 4.00 MiB
Total PE 2044
Alloc PE / Size 768 / 3.00 GiB
Free PE / Size 1276 / 4.98 GiB
VG UUID UDvSa1-UL3u-FhqZ-ZDBk-fcol-1ZH8-WNHoOM
倒數第二行 顯示還有剩餘
2.利用lvcreate -s 新建系統快照
給lv建立名為mylv-snap 大小為1Gb 的系統快照
[[email protected] ~]# lvcreate -s -n mylv-snap -L +1G /dev/myvg/mylv
Using default stripesize 64.00 KiB.
Logical volume "mylv-snap" created.
3.格式化
4. 掛載