1. 程式人生 > >linux邏輯卷管理器LVM及其快照

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. 掛載