1. 程式人生 > >LVM基本應用,擴展及縮減實現!

LVM基本應用,擴展及縮減實現!

查看 size reduce swa The 創建文件 nbsp AC from

LVM概述

  【百度百科】 LVM是邏輯盤卷管理(LogicalVolumeManager)的簡稱,它是Linux環境下對磁盤分區進行管理的一種機制,LVM是建立在硬盤和 分區之上的一個邏輯層,來提高磁盤分區管理的靈活性。通過LVM系統管理員可以輕松管理磁盤分區,如:將若幹個磁盤分區連接為一個整塊的卷組 (volumegroup),形成一個存儲池。管理員可以在卷組上隨意創建邏輯卷組(logicalvolumes),並進一步在邏輯卷組上創建文件系 統。管理員通過LVM可以方便的調整存儲卷組的大小,並且可以對磁盤存儲按照組的方式進行命名、管理和分配,例如按照使用用途進行定義:“development”和“sales”,而不是使用物理磁盤名“sda”和“sdb”。而且當系統添加了新的磁盤,通過LVM管理員就不必將磁盤的 文件移動到新的磁盤上以充分利用新的存儲空間,而是直接擴展文件系統跨越磁盤即可。

LVM架構

技術分享圖片

LVM創建

 1 // 磁盤分區,模擬創建物理磁盤過程
 2 [root@cdcjtx-centos-001 ~]# fdisk /dev/sdb
 3 歡迎使用 fdisk (util-linux 2.23.2)。
 4 
 5 更改將停留在內存中,直到您決定將更改寫入磁盤。
 6 使用寫入命令前請三思。
 7 
 8 
 9 命令(輸入 m 獲取幫助):n
10 Partition type:
11    p   primary (0 primary, 0 extended, 4 free)
12    e   extended
13 Select (default p):
14 Using default response p
15 分區號 (1-4,默認 1): 16 起始 扇區 (2048-41943039,默認為 2048): 17 將使用默認值 2048 18 Last 扇區, +扇區 or +size{K,M,G} (2048-41943039,默認為 41943039):+3G 19 分區 1 已設置為 Linux 類型,大小設為 3 GiB 20 21 命令(輸入 m 獲取幫助):n 22 Partition type: 23 p primary (1 primary, 0 extended, 3 free) 24 e extended 25 Select (default p): 26 Using default response p
27 分區號 (2-4,默認 2): 28 起始 扇區 (6293504-41943039,默認為 6293504): 29 將使用默認值 6293504 30 Last 扇區, +扇區 or +size{K,M,G} (6293504-41943039,默認為 41943039):+4G 31 分區 2 已設置為 Linux 類型,大小設為 4 GiB 32 33 命令(輸入 m 獲取幫助):n 34 Partition type: 35 p primary (2 primary, 0 extended, 2 free) 36 e extended 37 Select (default p): 38 Using default response p 39 分區號 (3,4,默認 3): 40 起始 扇區 (14682112-41943039,默認為 14682112): 41 將使用默認值 14682112 42 Last 扇區, +扇區 or +size{K,M,G} (14682112-41943039,默認為 41943039):+2G 43 分區 3 已設置為 Linux 類型,大小設為 2 GiB 44 45 命令(輸入 m 獲取幫助):t 46 分區號 (1-3,默認 3): 47 Hex 代碼(輸入 L 列出所有代碼):8e 48 已將分區“Linux”的類型更改為“Linux LVM” 49 50 命令(輸入 m 獲取幫助):t 51 分區號 (1-3,默認 3):2 52 Hex 代碼(輸入 L 列出所有代碼):8e 53 已將分區“Linux”的類型更改為“Linux LVM” 54 55 命令(輸入 m 獲取幫助):t 56 分區號 (1-3,默認 3):1 57 Hex 代碼(輸入 L 列出所有代碼):8e 58 已將分區“Linux”的類型更改為“Linux LVM” 59 60 命令(輸入 m 獲取幫助):w 61 The partition table has been altered! 62 63 Calling ioctl() to re-read partition table. 64 正在同步磁盤。 65 [root@cdcjtx-centos-001 ~]# fdisk /dev/sdb 66 歡迎使用 fdisk (util-linux 2.23.2)。 67 68 更改將停留在內存中,直到您決定將更改寫入磁盤。 69 使用寫入命令前請三思。 70 71 72 命令(輸入 m 獲取幫助):p 73 74 磁盤 /dev/sdb:21.5 GB, 21474836480 字節,41943040 個扇區 75 Units = 扇區 of 1 * 512 = 512 bytes 76 扇區大小(邏輯/物理):512 字節 / 512 字節 77 I/O 大小(最小/最佳):512 字節 / 512 字節 78 磁盤標簽類型:dos 79 磁盤標識符:0xc950dffb 80 81 設備 Boot Start End Blocks Id System 82 /dev/sdb1 2048 6293503 3145728 8e Linux LVM 83 /dev/sdb2 6293504 14682111 4194304 8e Linux LVM 84 /dev/sdb3 14682112 18876415 2097152 8e Linux LVM 85 86 命令(輸入 m 獲取幫助):q
 1 // 創建PV
 2 [root@cdcjtx-centos-001 ~]# pvcreate /dev/sdb1
 3   Physical volume "/dev/sdb1" successfully created.
 4 [root@cdcjtx-centos-001 ~]# pvcreate /dev/sdb2
 5   Physical volume "/dev/sdb2" successfully created.
 6 [root@cdcjtx-centos-001 ~]# pvcreate /dev/sdb3
 7   Physical volume "/dev/sdb3" successfully created.
 8 [root@cdcjtx-centos-001 ~]# pvs
 9   PV         VG     Fmt  Attr PSize   PFree
10   /dev/sda2  centos lvm2 a--  <19.00g    0
11   /dev/sdb1         lvm2 ---    3.00g 3.00g
12   /dev/sdb2         lvm2 ---    4.00g 4.00g
13   /dev/sdb3         lvm2 ---    2.00g 2.00g
1 // 創建PE大小為12M,名稱為TESTvg的邏輯卷組
2 [root@cdcjtx-centos-001 ~]# vgcreate -s 12M TESTvg /dev/sdb1 /dev/sdb2 /dev/sdb3
3   Volume group "TESTvg" successfully created
4 [root@cdcjtx-centos-001 ~]# vgs
5   VG     #PV #LV #SN Attr   VSize   VFree
6   TESTvg   3   0   0 wz--n-  <8.98g <8.98g
7   centos   1   2   0 wz--n- <19.00g     0
1 // 創建大小為4G,名為TESTlv的邏輯分區
2 [root@cdcjtx-centos-001 ~]# lvcreate -L 4G -n TESTlv TESTvg
3   Rounding up size to full physical extent <4.01 GiB
4   Logical volume "TESTlv" created.
5 [root@cdcjtx-centos-001 ~]# lvs
6   LV     VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
7   TESTlv TESTvg -wi-a-----  <4.01g
8   root   centos -wi-ao---- <17.00g
9   swap   centos -wi-ao----   2.00g

  格式化分區和數據準備,準備數據便於後面的數據完整性測試

 1 // 格式化分區為ext4類型,並掛載到/users目錄下,將目錄/etc/pam.d 復制到/users目錄下
 2 [root@cdcjtx-centos-001 ~]# mkfs.ext4 /dev/TESTvg/TESTlv
 3 mke2fs 1.42.9 (28-Dec-2013)
 4 文件系統標簽=
 5 OS type: Linux
 6 塊大小=4096 (log=2)
 7 分塊大小=4096 (log=2)
 8 Stride=0 blocks, Stripe width=0 blocks
 9 263472 inodes, 1053696 blocks
10 52684 blocks (5.00%) reserved for the super user
11 第一個數據塊=0
12 Maximum filesystem blocks=1080033280
13 33 block groups
14 32768 blocks per group, 32768 fragments per group
15 7984 inodes per group
16 Superblock backups stored on blocks:
17         32768, 98304, 163840, 229376, 294912, 819200, 884736
18 
19 Allocating group tables: 完成
20 正在寫入inode表: 完成
21 Creating journal (32768 blocks): 完成
22 Writing superblocks and filesystem accounting information: 完成
23 
24 [root@cdcjtx-centos-001 ~]# partprobe // 在不重新啟動機器的情況下系統能夠識別這些分區
25 [root@cdcjtx-centos-001 ~]# mount /dev/TESTvg/TESTlv /users/
26 [root@cdcjtx-centos-001 ~]# cp -R /etc/pam.d/ /users/
27 [root@cdcjtx-centos-001 ~]# ls -l /users/
28 總用量 20
29 drwx------ 2 root root 16384 5月  13 16:27 lost+found
30 drwxr-xr-x 2 root root  4096 5月  13 16:29 pam.d

LVM擴展

 1 // 為TESTlv新增加2G容量,並驗證數據完整度
 2 
 3 [root@cdcjtx-centos-001 ~]# lvextend -L +2G /dev/TESTvg/TESTlv // 擴展物理邊界
 4   Rounding size to boundary between physical extents: 2.00 GiB.
 5   Size of logical volume TESTvg/TESTlv changed from <4.02 GiB (343 extents) to 6.02 GiB (514 extents).
 6   Logical volume TESTvg/TESTlv successfully resized.
 7 
 8 [root@cdcjtx-centos-001 ~]# resize2fs /dev/TESTvg/TESTlv // 擴展邏輯邊界
 9 resize2fs 1.42.9 (28-Dec-2013)
10 Filesystem at /dev/TESTvg/TESTlv is mounted on /users; on-line resizing required
11 old_desc_blocks = 1, new_desc_blocks = 1
12 The filesystem on /dev/TESTvg/TESTlv is now 1579008 blocks long.
13 
14 [root@cdcjtx-centos-001 ~]# ls -l /users/ //數據校驗
15 總用量 20
16 drwx------ 2 root root 16384 5月  13 16:27 lost+found
17 drwxr-xr-x 2 root root  4096 5月  13 16:29 pam.d

LVM縮減

 1 // 將TESTlv縮減到2G大小,並校驗數據完整性!
 2 // 這裏采用ext4作為文件系統類型
 3 // 先卸載物理文件系統->文件系統的強制檢測和修復->縮減邏輯邊界->縮減物理邊界->重新掛載
 4 
 5 [root@cdcjtx-centos-001 ~]# umount /dev/TESTvg/TESTlv // 卸載物理文件系統
 6 
 7 [root@cdcjtx-centos-001 ~]# e2fsck -f /dev/TESTvg/TESTlv // 文件系統的強制檢測和修復
 8 e2fsck 1.42.9 (28-Dec-2013)
 9 第一步: 檢查inode,塊,和大小
10 第二步: 檢查目錄結構
11 第3步: 檢查目錄連接性
12 Pass 4: Checking reference counts
13 第5步: 檢查簇概要信息
14 /dev/TESTvg/TESTlv: 67/391216 files (0.0% non-contiguous), 61501/1579008 blocks
15 
16 [root@cdcjtx-centos-001 ~]# resize2fs /dev/TESTvg/TESTlv 2G // 縮減邏輯邊界為2G大小
17 resize2fs 1.42.9 (28-Dec-2013)
18 Resizing the filesystem on /dev/TESTvg/TESTlv to 524288 (4k) blocks.
19 The filesystem on /dev/TESTvg/TESTlv is now 524288 blocks long.
20 
21 [root@cdcjtx-centos-001 ~]# lvreduce -L 2G /dev/TESTvg/TESTlv // 縮減物理邊界為2G大小
22   Rounding size to boundary between physical extents: 2.00 GiB.
23   WARNING: Reducing active logical volume to 2.00 GiB.
24   THIS MAY DESTROY YOUR DATA (filesystem etc.)
25 Do you really want to reduce TESTvg/TESTlv? [y/n]: y // 確認執行,註意風險性
26   Size of logical volume TESTvg/TESTlv changed from 6.02 GiB (514 extents) to 2.00 GiB (171 extents).
27   Logical volume TESTvg/TESTlv successfully resized.
28 
29 [root@cdcjtx-centos-001 ~]# mount /dev/TESTvg/TESTlv /users/ //重新掛載
30 
31 [root@cdcjtx-centos-001 ~]# ls -l /users/ //數據查看
32 總用量 20
33 drwx------ 2 root root 16384 5月  13 16:27 lost+found
34 drwxr-xr-x 2 root root  4096 5月  13 16:29 pam.d

刪除LVM卷案例

 1 [root@cdcjtx-centos-001 ~]# umount /users/
 2 
 3 [root@cdcjtx-centos-001 ~]# lvremove /dev/TESTvg/TESTlv
 4 Do you really want to remove active logical volume TESTvg/TESTlv? [y/n]: y
 5   Logical volume "TESTlv" successfully removed
 6 
 7 [root@cdcjtx-centos-001 ~]# vgremove TESTvg
 8   Volume group "TESTvg" successfully removed
 9 
10 [root@cdcjtx-centos-001 ~]# pvremove /dev/sdb1
11   Labels on physical volume "/dev/sdb1" successfully wiped.
12 
13 [root@cdcjtx-centos-001 ~]# pvremove /dev/sdb2
14   Labels on physical volume "/dev/sdb2" successfully wiped.
15 
16 [root@cdcjtx-centos-001 ~]# pvremove /dev/sdb3
17   Labels on physical volume "/dev/sdb3" successfully wiped.
18 
19 [root@cdcjtx-centos-001 ~]# pvs
20   PV         VG     Fmt  Attr PSize   PFree
21   /dev/sda2  centos lvm2 a--  <19.00g    0
22 
23 [root@cdcjtx-centos-001 ~]# vgs
24   VG     #PV #LV #SN Attr   VSize   VFree
25   centos   1   2   0 wz--n- <19.00g    0
26 
27 [root@cdcjtx-centos-001 ~]# lvs
28   LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
29   root centos -wi-ao---- <17.00g
30   swap centos -wi-ao----   2.00g

  

LVM基本應用,擴展及縮減實現!