Linux中的LVM

邏輯卷管理器,通過將另外一個硬盤上的分區加到已有文件系統,來動態地向已有文件系統添加空間的方法。

邏輯卷管理的核心是處理安裝在系統上的硬盤分區。在邏輯卷管理的世界裏,硬盤稱作物理卷(Physical Volume,PV).每個物理卷都會映射到硬盤上創建的某一個物理分區。

多個物理卷元素集中在一起可以組成一個卷組(Volume Group,VG)。邏輯卷管理系統會把卷組當做物理硬盤一樣對待,但事實上卷組可能是由分佈多個物理硬盤上的多個物理分區組成的。卷組提供了一個創建邏輯分區的平臺,而這些邏輯分區事實上包含了文件系統。

整個結構中的最後一層是邏輯卷(Logic Volume,LV)。邏輯卷爲Linux提供了創建文件系統的分區環境,作用類似於到目前爲止我們一直在探討的Linux中的物理硬盤。Linux系統將邏輯卷當做物理分區對待。可以使用任意一種標準Linux文件系統來格式化邏輯卷,然後再將它在某個掛載點添加進入Linux虛擬目錄中。

一.創建LINUX LVM

1、定義物理卷

[root@TP-CW-TS-DB-01 ~]# fdisk /dev/sdb
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').
Command (m for help): t
Partition number (1-6): 8e
Value out of range.
Partition number (1-6): quit
Partition number (1-6): ^C
[root@TP-CW-TS-DB-01 ~]# fdisk /dev/sdb
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').
Command (m for help): t
Partition number (1-6): 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)
Command (m for help): t
Partition number (1-6): 2
Hex code (type L to list codes): 8e
Changed system type of partition 2 to 8e (Linux LVM)
Command (m for help): t
Partition number (1-6): 3
Hex code (type L to list codes): 8e
Changed system type of partition 3 to 8e (Linux LVM)
Command (m for help): t
Partition number (1-6): 4
Hex code (type L to list codes): 8e
You cannot change a partition into an extended one or vice versa
Delete it first.
Command (m for help): t
Partition number (1-6): 5
Hex code (type L to list codes): 8e
Changed system type of partition 5 to 8e (Linux LVM)
Command (m for help): t
Partition number (1-6): 6
Hex code (type L to list codes): 8e
Changed system type of partition 6 to 8e (Linux LVM)
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@TP-CW-TS-DB-01 ~]# fdisk /dev/sdb
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').
Command (m for help): p
Disk /dev/sdb: 300.0 GB, 300000000000 bytes
255 heads, 63 sectors/track, 36472 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xc82dffc2
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1          30      240943+  8e  Linux LVM
/dev/sdb2              31        2642    20980890   8e  Linux LVM
/dev/sdb3            2643        3948    10490445   8e  Linux LVM
/dev/sdb4            3949        6560    20980890    5  Extended
/dev/sdb5            3949        5254    10490413+  8e  Linux LVM
/dev/sdb6            5255        6560    10490413+  8e  Linux LVM

用來sdb的6個分區轉換成Linux LVM分區,8e分區類型表示這個分區將會被用做Linux LVM系統的一部分,而不是一個直接的文件系統,

2、創建PV

[root@TP-CW-TS-DB-01 ~]# pvcreate /dev/sdb5
  Physical volume "/dev/sdb5" successfully created
[root@TP-CW-TS-DB-01 ~]# pvcreate /dev/sdb6
  Physical volume "/dev/sdb6" successfully created
[root@TP-CW-TS-DB-01 ~]# pvs
  /dev/drbd0: open failed: Wrong medium type
  PV         VG       Fmt  Attr PSize  PFree
  /dev/sda2  VolGroup lvm2 a-   67.88g     0
  /dev/sdb5           lvm2 a-   10.00g 10.00g
  /dev/sdb6           lvm2 a-   10.00g 10.00g

3.創建VGS


[root@TP-CW-TS-DB-01 ~]# vgcreate onlinevg /dev/sdb5
  Volume group "onlinevg" successfully created
[root@TP-CW-TS-DB-01 ~]# vgcreate onlinevg /dev/sdb6
  A volume group called onlinevg already exists.
[root@TP-CW-TS-DB-01 ~]# vgcreate onlinevg /dev/sdb{5,6}
  Volume group "onlinevg" successfully created
[root@TP-CW-TS-DB-01 ~]# vgs
  VG       #PV #LV #SN Attr   VSize  VFree
  VolGroup   1   3   0 wz--n- 67.88g     0
  onlinevg   2   0   0 wz--n- 20.00g 20.00g

4、創建LV

[root@TP-CW-TS-DB-01 ~]# lvcreate -L 5G -n mylv onlinevg
  Logical volume "mylv" created
[root@TP-CW-TS-DB-01 ~]# lvs
  LV      VG       Attr   LSize  Origin Snap%  Move Log Copy%  Convert
  lv_home VolGroup -wi-ao 17.81g                                 
  lv_root VolGroup -wi-ao 32.36g                                 
  lv_swap VolGroup -wi-ao 17.70g                                 
  mylv    onlinevg -wi-a-  5.00g

邏輯卷的設備文件:/dev/VG_NAME/LV_NAME

[root@TP-CW-TS-DB-01 ~]# ls /dev/onlinevg/mylv
/dev/onlinevg/mylv
[root@TP-CW-TS-DB-01 ~]# ls -l /dev/onlinevg/mylv
lrwxrwxrwx. 1 root root 7 Oct 12 16:21 /dev/onlinevg/mylv -> ../dm-3

5、格式化LV

mke2fs -t ext4 /dev/onlinevg/mylv
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1310720 blocks
65536 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1342177280
40 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736
Writing inode tables: done                        
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 32 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

6、掛載分區

[root@TP-CW-TS-DB-01 ~]# mount /dev/onlinevg/mylv /mnt/
[root@TP-CW-TS-DB-01 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                       32G  3.7G   27G  13% /
tmpfs                 7.8G     0  7.8G   0% /dev/shm
/dev/sda1             485M   49M  411M  11% /boot
/dev/mapper/VolGroup-lv_home
                       18G  172M   17G   2% /home
/dev/mapper/onlinevg-mylv
                      5.0G  138M  4.6G   3% /mnt

二、擴展VG

1、首先在創建一個PV

[root@TP-CW-TS-DB-01 mnt]# pvcreate /dev/sdb3
  Physical volume "/dev/sdb3" successfully created

2、通過vgcreatend命令擴展VG

[root@TP-CW-TS-DB-01 mnt]# vgs
  VG       #PV #LV #SN Attr   VSize  VFree
  VolGroup   1   3   0 wz--n- 67.88g     0
  onlinevg   2   1   0 wz--n- 20.00g 15.00g
[root@TP-CW-TS-DB-01 mnt]# vgextend onlinevg /dev/sdb
sdb   sdb1  sdb2  sdb3  sdb4  sdb5  sdb6
[root@TP-CW-TS-DB-01 mnt]# vgextend onlinevg /dev/sdb3
  Volume group "onlinevg" successfully extended
[root@TP-CW-TS-DB-01 mnt]# vgs
  VG       #PV #LV #SN Attr   VSize  VFree
  VolGroup   1   3   0 wz--n- 67.88g     0
  onlinevg   3   1   0 wz--n- 30.00g 25.00g

通過命令查看onlinevg擴展到了30G


[root@TP-CW-TS-DB-01 mnt]# pvs
  PV         VG       Fmt  Attr PSize  PFree
  /dev/sda2  VolGroup lvm2 a-   67.88g     0
  /dev/sdb3  onlinevg lvm2 a-   10.00g 10.00g
  /dev/sdb5  onlinevg lvm2 a-   10.00g  5.00g
  /dev/sdb6  onlinevg lvm2 a-   10.00g 10.00g

三、縮減VG

1、確定要移除的PV(/dev/sdb5)

2、利用pvmove將/dev/sdb5中的數據移到物理捲上


pvmove /dev/sdb5
/dev/sdb5:Mover:100.0%

3、從卷組中將縮減vg

[root@TP-CW-TS-DB-01 ~]# vgreduce onlinevg /dev/sdb5
  Removed "/dev/sdb5" from volume group "onlinevg"
[root@TP-CW-TS-DB-01 ~]# vgs
  VG       #PV #LV #SN Attr   VSize  VFree
  VolGroup   1   3   0 wz--n- 67.88g     0
  onlinevg   2   1   0 wz--n- 20.00g 15.00g

4、刪除/dev/sdb5

[root@TP-CW-TS-DB-01 ~]# pvremove /dev/sdb5
  Labels on physical volume "/dev/sdb5" successfully wiped

四、擴展邏輯卷

1、擴展物理邊界

[root@TP-CW-TS-DB-01 ~]# lvextend -L +3G /dev/onlinevg/mylv
  Extending logical volume mylv to 8.00 GiB
  Logical volume mylv successfully resized

注意:這個是候文件系統掛載的/mnt大小不會有任何變化

2、擴展邏輯邊界

[root@TP-CW-TS-DB-01 ~]# resize2fs /dev/onlinevg/mylv
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/onlinevg/mylv is mounted on /mnt; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/onlinevg/mylv to 2097152 (4k) blocks.
The filesystem on /dev/onlinevg/mylv is now 2097152 blocks long.
[root@TP-CW-TS-DB-01 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                       32G  3.7G   27G  13% /
tmpfs                 7.8G     0  7.8G   0% /dev/shm
/dev/sda1             485M   49M  411M  11% /boot
/dev/mapper/VolGroup-lv_home
                       18G  172M   17G   2% /home
/dev/mapper/onlinevg-mylv
                      7.9G  140M  7.4G   2% /mnt

五、縮減邏輯卷

1、卸載並強行檢測文件系統:

umount /mnt

[root@TP-CW-TS-DB-01 ~]# e2fsck -f /dev/onlinevg/mylv
e2fsck 1.41.12 (17-May-2010)
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/onlinevg/mylv: 12/524288 files (0.0% non-contiguous), 68564/2097152 blocks

2、縮減邏輯邊界


[root@TP-CW-TS-DB-01 ~]# resize2fs /dev/onlinevg/mylv 3G
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/onlinevg/mylv to 786432 (4k) blocks.
The filesystem on /dev/onlinevg/mylv is now 786432 blocks long.

3、縮減物理邊界

[root@TP-CW-TS-DB-01 ~]# lvreduce -L 3G /dev/onlinevg/mylv
  WARNING: Reducing active logical volume to 3.00 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce mylv? [y/n]: y
  Reducing logical volume mylv to 3.00 GiB
  Logical volume mylv successfully resized
[root@TP-CW-TS-DB-01 ~]# mount /dev/onlinevg/mylv /mnt
[root@TP-CW-TS-DB-01 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                       32G  3.7G   27G  13% /
tmpfs                 7.8G     0  7.8G   0% /dev/shm
/dev/sda1             485M   49M  411M  11% /boot
/dev/mapper/VolGroup-lv_home
                       18G  172M   17G   2% /home
/dev/mapper/onlinevg-mylv
                      3.0G  136M  2.7G   5% /mnt

六、創建快照卷

lvcreate

-s:快照卷:

-p r:只讀

-n:定義快照

[root@TP-CW-TS-DB-01 dev]# lvcreate -L 100M -s -p r -n mylv-snap /dev/onlinevg/mylv
 [root@TP-CW-TS-DB-01 dev]# mount -o ro /dev/onlinevg/mylv-snap /media
[root@TP-CW-TS-DB-01 dev]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                       32G  3.7G   27G  13% /
tmpfs                 7.8G     0  7.8G   0% /dev/shm
/dev/sda1             485M   49M  411M  11% /boot
/dev/mapper/VolGroup-lv_home
                       18G  172M   17G   2% /home
/dev/mapper/onlinevg-mylv
                      3.0G  136M  2.7G   5% /mnt
/dev/mapper/onlinevg-mylv--snap
                      3.0G  136M  2.7G   5% /media


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