LVM

1.lvm管理設備,使設備的大小根據需要變化
pv:物理卷
pe:物理拓展分區
vg:物理卷組
lvm:邏輯卷

2.lvm的建立
(1)

劃分物理分區,並修改分區標籤爲1vm(lvm類型id爲8e)
這裏寫圖片描述

這裏寫圖片描述

pvcreate /dev/vdb1             ## 創建物理卷
vgcreate vg0 /dev/vdb1         ##創建物理卷組
lvcreate -L 100M -n lv0 vg0    ##創建邏輯卷
mkfs.xfs /dev/vg0/lv0          ##格式化設備
mount /dev/vg0/lv0  /westos    ##設備掛載投入使用

這裏寫圖片描述

[root@localhost ~]# pvcreate /dev/vdb1
  Physical volume "/dev/vdb1" successfully created

[root@localhost ~]# mkdir /westos
[root@localhost ~]# chmod 777 /westos
[root@localhost ~]# ls -ld /westos
drwxrwxrwx. 2 root root 6 Nov  4 21:47 /westos
[root@localhost ~]#
[root@localhost ~]# vgcreate vg0 /dev/vdb1
  Volume group "vg0" successfully created
[root@localhost ~]# lvcreate -L 100M -n lv0 vg0
  Logical volume "lv0" created
[root@localhost ~]# mkfs.xfs /dev/vg0/lv0
meta-data=/dev/vg0/lv0           isize=256    agcount=4, agsize=6400 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0
data     =                       bsize=4096   blocks=25600, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal log           bsize=4096   blocks=853, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@localhost ~]# mount /dev/vg0/lv0 /westos

這裏寫圖片描述
監控:watch -n 1 ‘pvs;echo +++++++;vgs;echo ++++++;lvs;echo ======;df -h /westos’

Every 1.0s: pvs;echo +++++++;vgs;echo ++++++;lvs;echo ======;df -h ...  Sat Nov  4 22:10:56 2017

  PV         VG   Fmt  Attr PSize   PFree
  /dev/vdb1  vg0  lvm2 a--  496.00m      0
  /dev/vdb2  vg0  lvm2 a--  496.00m 292.00m
+++++++
  VG   #PV #LV #SN Attr   VSize   VFree
  vg0    2   1   0 wz--n- 992.00m 292.00m
++++++
  LV   VG   Attr       LSize   Pool Origin Data%  Move Log Cpy%Sync Convert
##### lv0  vg0  -wi-ao---- 700.00m
======
Filesystem           Size  Used Avail Use% Mounted on
/dev/mapper/vg0-lv0  697M  6.0M  691M   1% /westos

這裏寫圖片描述

(2)

pvcreate  /dev/vdb1                   
vgcreate -s 4M westos /dev/vdb1         ##生成一個物理拓展分區大小爲4M,物理卷組westos爲4M
lvcreate -l 50  -n lv0 westos           ##邏輯卷組爲200M

這裏寫圖片描述

這裏寫圖片描述
3.lvm的拉深
當vg中剩餘容量充足的時候

lvextend -L 400M /dev/vg0/lv0    ##將設備從100M拉深爲400M
xfs_growfs /dev/vg0/lv0          ##將文件系統拉深
[root@localhost ~]# lvextend -L 400M /dev/vg0/lv0
  Extending logical volume lv0 to 400.00 MiB
  Logical volume lv0 successfully resized
[root@localhost ~]# xfs_growfs /dev/vg0/lv0
meta-data=/dev/mapper/vg0-lv0    isize=256    agcount=4, agsize=6400 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0
data     =                       bsize=4096   blocks=25600, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal               bsize=4096   blocks=853, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 25600 to 102400

這裏寫圖片描述

當vg中剩餘容量不足的時候
新建分區/dev/vdb2,改標籤爲lvm
這裏寫圖片描述

pvcreate /dev/vdb2                 ##將/dev/vdb2添加到pv中
vgextend vg0 /dev/vdb2             ##將/dev/vdb2添加到vg0中
lvextend -L 700M /dev/vg0/lv0      ##將/dev/vg0/lv0設備拉深到700M
xfs_growfs /dev/vg0/lv0            ##拉深文件系統

[root@localhost ~]# pvcreate /dev/vdb2
  Physical volume "/dev/vdb2" successfully created
[root@localhost ~]# vgectend  vg0 /dev/vdb2
bash: vgectend: command not found...
[root@localhost ~]# vgextend  vg0 /dev/vdb2
  Volume group "vg0" successfully extended
[root@localhost ~]# lvextend -L 700M /dev/vg0/lv0
  Extending logical volume lv0 to 700.00 MiB
  Logical volume lv0 successfully resized

[root@localhost ~]# xfs_growfs /dev/vg0/lv0
meta-data=/dev/mapper/vg0-lv0    isize=256    agcount=16, agsize=6400 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0
data     =                       bsize=4096   blocks=102400, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal               bsize=4096   blocks=853, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 102400 to 179200
[root@localhost ~]#

這裏寫圖片描述

注意:擴容的極限爲18EB-1TB

4.在ext4文件系統中:

umount  /dev/vg0/lv0     ##卸載設備
mkfs.ext4  /dev/vg0/lv0  ##格式化設備爲ext4
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
44832 inodes, 179200 blocks
8960 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=184549376
6 block groups
32768 blocks per group, 32768 fragments per group
7472 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840

Allocating group tables: done
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

這裏寫圖片描述

拉深

lvextend -L 400M /dev/vg0/lv0       ##將設備拉深到700M
resize2fs /dev/vg0/lv0                    ##拉深文件系統

縮減

umount  /dev/vg0/lv0             ##卸載設備
e2fsck -f /dev/vg0/lv0           ##掃描設備上的數據,查看文件的大小,根據文件的大小縮減設備。
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/vg0/lv0: 11/44832 files (0.0% non-contiguous), 7272/179200 blocks

resize2fs /dev/vg0/lv0 200M       ##縮減文件系統
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/vg0/lv0 to 51200 (4k) blocks.
The filesystem on /dev/vg0/lv0 is now 51200 blocks long.

這裏寫圖片描述

mount /dev/vg0/lv0  /westos/    ##掛載設備
lvreduce -L 200M /dev/vg0/lv0   ##縮減設備
WARNING: Reducing active and open logical volume to 200.00 MiB
 THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lv0? [y/n]: y
  Reducing logical volume lv0 to 200.00 MiB
  Logical volume lv0 successfully resized
[root@localhost ~]# lvextend -L 400M /dev/vg0/lv0
  Extending logical volume lv0 to 400.00 MiB
  Logical volume lv0 successfully resized

這裏寫圖片描述

5.對卷組

pvmove /dev/vdb1  /dev/vdb2  ##當要移除的分區存在數據時,需要把數據遷移到其他的pv中
vgreduce vg0 /dev/vdb1       ##移除卷組中的/dev/vdb1
pvremove /dev/vdb1           ##將/dev/vdb1從物理卷中移除
[root@localhost ~]# pvmove /dev/vdb1  /dev/vdb2
  /dev/vdb1: Moved: 100.0%
[root@localhost ~]# vgreduce vg0 /dev/vdb1
  Removed "/dev/vdb1" from volume group "vg0"
[root@localhost ~]# pvremove /dev/vdb1
  Labels on physical volume "/dev/vdb1" successfully wiped
[root@localhost ~]#

這裏寫圖片描述

6.lvm快照
lvm快照: ##讀取數據讀取的是設備

lvcreate -L 100M -n lv0backup  -s /dev/vg0/lv0     
##對/dev/vg0/lv0進行快照,快照的大小爲100M,生成的快照文件爲v0backup。
mount /dev/vg0/lv0backup /westos/     ##掛載生成的快照

[root@localhost ~]# lvcreate -L 80M -n lv0backup  -s /dev/vg0/lv0
  Logical volume "lv0backup" created
[root@localhost ~]# mount /dev/vg0/lv0backup /westos/
[root@localhost ~]#

這裏寫圖片描述

7.lvm的刪除

umount /dev/vg0/lv0backup         ##卸載快照
lvremove /dev/vg0/lv0backup       ##移除快照
lvremove /dev/vg0/lv0             ##移除邏輯卷              
vgremove vg0                      ##移除物理卷組
pvremove /dev/vdb2                ##將/dev/dvb2從物理卷中移除

這裏寫圖片描述

fdisk /dev/vdb
這裏寫圖片描述

這裏寫圖片描述

[root@localhost ~]# umount /dev/vg0/lv0backup
umount: /dev/vg0/lv0backup: not mounted
[root@localhost ~]# lvremove /dev/vg0/lv0backup
Do you really want to remove active logical volume lv0backup? [y/n]: y
  Logical volume "lv0backup" successfully removed
[root@localhost ~]# lvremove /dev/vg0/lv0
Do you really want to remove active logical volume lv0? [y/n]: y
  Logical volume "lv0" successfully removed
[root@localhost ~]# vgremove vg0
  Volume group "vg0" successfully removed
[root@localhost ~]# pvremove /dev/vdb2
  Labels on physical volume "/dev/vdb2" successfully wiped
[root@localhost ~]# fdisk /dev/vdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): d
Partition number (1-3, default 3): 1
Partition 1 is deleted

Command (m for help): d
Partition number (2,3, default 3):
Partition 3 is deleted

Command (m for help): d
Selected partition 2

Partition 2 is deleted

Command (m for help): p

Disk /dev/vdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xe503464f

   Device Boot      Start         End      Blocks   Id  System

Command (m for help): wq

當誤刪除(即直接使用fdisk /dev/vdb刪除/dev/vdb1),出現removemissing時,處理方法爲:
vgreduce vgo –removemissing –force

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