1. 程式人生 > >[CentOS 7系列]LVM磁盤管理

[CentOS 7系列]LVM磁盤管理

系統管理員 系統工具 計算機 linux 用戶組

LVM是 Logical Volume Manager(邏輯卷管理)的簡寫,它由Heinz Mauelshagen在Linux 2.4內核上實現。LVM將一個或多個硬盤的分區在邏輯上集合,相當於一個大硬盤來使用,當硬盤的空間不夠使用的時候,可以繼續將其它的硬盤的分區加入其中,這樣可以實現磁盤空間的動態管理,相對於普通的磁盤分區有很大的靈活性。

與傳統的磁盤與分區相比,LVM為計算機提供了更高層次的磁盤存儲。它使系統管理員可以更方便的為應用與用戶分配存儲空間。在LVM管理下的存儲卷可以按需要隨時改變大小與移除(可能需對文件系統工具進行升級)。LVM也允許按用戶組對存儲卷進行管理,允許管理員用更直觀的名稱(如"sales‘、 ‘development‘)代替物理磁盤名(如‘sda‘、‘sdb‘)來標識存儲卷。


1、創建LVM磁盤

[[email protected] ~]# fdisk /dev/sdb
歡迎使用 fdisk (util-linux 2.23.2)。

更改將停留在內存中,直到您決定將更改寫入磁盤。
使用寫入命令前請三思。


命令(輸入 m 獲取幫助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分區號 (1-4,默認 1):
起始 扇區 (2048-41943039,默認為 2048):
將使用默認值 2048
Last 扇區, +扇區 or +size{K,M,G} (2048-41943039,默認為 41943039):+1G
分區 1 已設置為 Linux 類型,大小設為 1 GiB

命令(輸入 m 獲取幫助):p

磁盤 /dev/sdb:21.5 GB, 21474836480 字節,41943040 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 字節 / 512 字節
I/O 大小(最小/最佳):512 字節 / 512 字節
磁盤標簽類型:dos
磁盤標識符:0xa71b8f53

   設備 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     2099199     1048576   83  Linux

命令(輸入 m 獲取幫助):t
已選擇分區 1
Hex 代碼(輸入 L 列出所有代碼):8e
已將分區“Linux”的類型更改為“Linux LVM”

命令(輸入 m 獲取幫助):p

磁盤 /dev/sdb:21.5 GB, 21474836480 字節,41943040 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 字節 / 512 字節
I/O 大小(最小/最佳):512 字節 / 512 字節
磁盤標簽類型:dos
磁盤標識符:0xa71b8f53

   設備 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     2099199     1048576   8e  Linux LVM

命令(輸入 m 獲取幫助):n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
分區號 (2-4,默認 2):
起始 扇區 (2099200-41943039,默認為 2099200):
將使用默認值 2099200
Last 扇區, +扇區 or +size{K,M,G} (2099200-41943039,默認為 41943039):+1G
分區 2 已設置為 Linux 類型,大小設為 1 GiB

命令(輸入 m 獲取幫助):n       
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p): p
分區號 (3,4,默認 3):
起始 扇區 (4196352-41943039,默認為 4196352):
將使用默認值 4196352
Last 扇區, +扇區 or +size{K,M,G} (4196352-41943039,默認為 41943039):+1G
分區 3 已設置為 Linux 類型,大小設為 1 GiB

命令(輸入 m 獲取幫助):p

磁盤 /dev/sdb:21.5 GB, 21474836480 字節,41943040 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 字節 / 512 字節
I/O 大小(最小/最佳):512 字節 / 512 字節
磁盤標簽類型:dos
磁盤標識符:0xa71b8f53

   設備 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     2099199     1048576   8e  Linux LVM
/dev/sdb2         2099200     4196351     1048576   83  Linux
/dev/sdb3         4196352     6293503     1048576   83  Linux

命令(輸入 m 獲取幫助):t
分區號 (1-3,默認 3):2
Hex 代碼(輸入 L 列出所有代碼):8e
已將分區“Linux”的類型更改為“Linux LVM”

命令(輸入 m 獲取幫助):t
分區號 (1-3,默認 3):3
Hex 代碼(輸入 L 列出所有代碼):8e
已將分區“Linux”的類型更改為“Linux LVM”

命令(輸入 m 獲取幫助):p

磁盤 /dev/sdb:21.5 GB, 21474836480 字節,41943040 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 字節 / 512 字節
I/O 大小(最小/最佳):512 字節 / 512 字節
磁盤標簽類型:dos
磁盤標識符:0xa71b8f53

   設備 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     2099199     1048576   8e  Linux LVM
/dev/sdb2         2099200     4196351     1048576   8e  Linux LVM
/dev/sdb3         4196352     6293503     1048576   8e  Linux LVM

命令(輸入 m 獲取幫助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盤。
[[email protected]
/* */ ~]# pvcreate /dev/sdb1 WARNING: xfs signature detected on /dev/sdb1 at offset 0. Wipe it? [y/n]: y Wiping xfs signature on /dev/sdb1. Physical volume "/dev/sdb1" successfully created. [[email protected] ~]# pvcreate /dev/sdb2 WARNING: xfs_external_log signature detected on /dev/sdb2 at offset 18432. Wipe it? [y/n]: y Wiping xfs_external_log signature on /dev/sdb2. Physical volume "/dev/sdb2" successfully created. [[email protected]
/* */ ~]# pvcreate /dev/sdb3 WARNING: dos signature detected on /dev/sdb3 at offset 510. Wipe it? [y/n]: y Wiping dos signature on /dev/sdb3. Physical volume "/dev/sdb3" successfully created. [[email protected] ~]# fdisk -l /dev/sdb 磁盤 /dev/sdb:21.5 GB, 21474836480 字節,41943040 個扇區 Units = 扇區 of 1 * 512 = 512 bytes 扇區大小(邏輯/物理):512 字節 / 512 字節 I/O 大小(最小/最佳):512 字節 / 512 字節 磁盤標簽類型:dos 磁盤標識符:0xa71b8f53 設備 Boot Start End Blocks Id System /dev/sdb1 2048 2099199 1048576 8e Linux LVM /dev/sdb2 2099200 4196351 1048576 8e Linux LVM /dev/sdb3 4196352 6293503 1048576 8e Linux LVM [[email protected] ~]# partprobe [[email protected] ~]# ls /dev/sdb1 /dev/sdb1 [[email protected] ~]# ls /dev/sdb2 /dev/sdb2 [[email protected] ~]# ls /dev/sdb3 /dev/sdb3 [[email protected] ~]# pvdisplay "/dev/sdb3" is a new physical volume of "1.00 GiB" --- NEW Physical volume --- PV Name /dev/sdb3 VG Name PV Size 1.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID N7T8n5-Gc1a-bdO6-yFJy-PVTF-3HJM-Cy3gFD "/dev/sdb2" is a new physical volume of "1.00 GiB" --- NEW Physical volume --- PV Name /dev/sdb2 VG Name PV Size 1.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID 0Y7myL-dyWh-iKbN-G82H-U5je-lsGD-03i7UL "/dev/sdb1" is a new physical volume of "1.00 GiB" --- NEW Physical volume --- PV Name /dev/sdb1 VG Name PV Size 1.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID uWSpFE-KDDS-99nq-5jlc-NBAv-1JBi-PZgxC0 [[email protected] ~]# pvs PV VG Fmt Attr PSize PFree /dev/sdb1 lvm2 --- 1.00g 1.00g /dev/sdb2 lvm2 --- 1.00g 1.00g /dev/sdb3 lvm2 --- 1.00g 1.00g [[email protected] ~]# vgcreate vg1 /dev/sdb1 /dev/sdb2 Volume group "vg1" successfully created [[email protected] ~]# vgs VG #PV #LV #SN Attr VSize VFree vg1 2 0 0 wz--n- 1.99g 1.99g [[email protected] ~]# lvcreate -L 100M -n lv1 vg1 Logical volume "lv1" created. [[email protected] ~]# mkfs.ext4 /dev/vg1/lv1 mke2fs 1.42.9 (28-Dec-2013) 文件系統標簽= OS type: Linux 塊大小=1024 (log=0) 分塊大小=1024 (log=0) Stride=0 blocks, Stripe width=0 blocks 25688 inodes, 102400 blocks 5120 blocks (5.00%) reserved for the super user 第一個數據塊=1 Maximum filesystem blocks=33685504 13 block groups 8192 blocks per group, 8192 fragments per group 1976 inodes per group Superblock backups stored on blocks: 8193, 24577, 40961, 57345, 73729 Allocating group tables: 完成 正在寫入inode表: 完成 Creating journal (4096 blocks): 完成 Writing superblocks and filesystem accounting information: 完成 [[email protected] ~]# mount /dev/vg1/lv1 /mnt/ [[email protected] ~]# mkdir /mnt/123 [[email protected] ~]# touch /mnt/1.txt [[email protected] ~]# echo "1234">/mnt/1.txt [[email protected] ~]# df -h 文件系統 容量 已用 可用 已用% 掛載點 /dev/sda3 28G 1.1G 27G 4% / devtmpfs 483M 0 483M 0% /dev tmpfs 493M 0 493M 0% /dev/shm tmpfs 493M 6.8M 486M 2% /run tmpfs 493M 0 493M 0% /sys/fs/cgroup /dev/sda1 197M 109M 88M 56% /boot tmpfs 99M 0 99M 0% /run/user/0 /dev/mapper/vg1-lv1 93M 1.6M 85M 2% /mnt [[email protected] ~]# cat /mnt/1.txt 1234


2、磁盤擴容

[[email protected] ~]# umount /mnt/
[[email protected] ~]# lvresize -L 300M /dev/vg1/lv1
  Size of logical volume vg1/lv1 changed from 100.00 MiB (25 extents) to 300.00 MiB (75 extents).
  Logical volume vg1/lv1 successfully resized.
[[email protected] ~]# e2fsck -f /dev/vg1/lv1
e2fsck 1.42.9 (28-Dec-2013)
第一步: 檢查inode,塊,和大小
第二步: 檢查目錄結構
第3步: 檢查目錄連接性
Pass 4: Checking reference counts
第5步: 檢查簇概要信息
/dev/vg1/lv1: 13/25688 files (7.7% non-contiguous), 8899/102400 blocks
[[email protected] ~]# mount /dev/vg1/lv1 /mnt/
[[email protected] ~]# resize2fs /dev/vg1/lv1
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/vg1/lv1 is mounted on /mnt; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 3
The filesystem on /dev/vg1/lv1 is now 307200 blocks long.

[[email protected] ~]# df -h
文件系統             容量  已用  可用 已用% 掛載點
/dev/sda3             28G  1.1G   27G    4% /
devtmpfs             483M     0  483M    0% /dev
tmpfs                493M     0  493M    0% /dev/shm
tmpfs                493M  6.8M  486M    2% /run
tmpfs                493M     0  493M    0% /sys/fs/cgroup
/dev/sda1            197M  109M   88M   56% /boot
tmpfs                 99M     0   99M    0% /run/user/0
/dev/mapper/vg1-lv1  287M  2.1M  270M    1% /mnt

如果是xfs格式時,不需要卸載,但需要執行xfs_growfs /dev/vg1/lv1命令。


3、磁盤縮減

[[email protected] ~]# umount /mnt/
[[email protected] ~]# e2fsck -f /dev/vg1/lv1
e2fsck 1.42.9 (28-Dec-2013)
第一步: 檢查inode,塊,和大小
第二步: 檢查目錄結構
第3步: 檢查目錄連接性
Pass 4: Checking reference counts
第5步: 檢查簇概要信息
/dev/vg1/lv1: 13/75088 files (7.7% non-contiguous), 15640/307200 blocks
[[email protected] ~]# resize2fs /dev/vg1/lv1 100M
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/vg1/lv1 to 102400 (1k) blocks.
The filesystem on /dev/vg1/lv1 is now 102400 blocks long.

[[email protected] ~]# lvresize -L 100M /dev/vg1/lv1
  WARNING: Reducing active logical volume to 100.00 MiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg1/lv1? [y/n]: y
  Size of logical volume vg1/lv1 changed from 300.00 MiB (75 extents) to 100.00 MiB (25 extents).
  Logical volume vg1/lv1 successfully resized.
[[email protected] ~]# mount /dev/vg1/lv1 /mnt/
[[email protected] ~]# df -h
文件系統             容量  已用  可用 已用% 掛載點
/dev/sda3             28G  1.1G   27G    4% /
devtmpfs             483M     0  483M    0% /dev
tmpfs                493M     0  493M    0% /dev/shm
tmpfs                493M  6.8M  486M    2% /run
tmpfs                493M     0  493M    0% /sys/fs/cgroup
/dev/sda1            197M  109M   88M   56% /boot
tmpfs                 99M     0   99M    0% /run/user/0
/dev/mapper/vg1-lv1   93M  1.6M   86M    2% /mnt

註意:xfs格式不支持縮減。


4、擴展卷組

[[email protected] ~]# pvs
  PV         VG  Fmt  Attr PSize    PFree
  /dev/sdb1  vg1 lvm2 a--  1020.00m  920.00m
  /dev/sdb2  vg1 lvm2 a--  1020.00m 1020.00m
  /dev/sdb3      lvm2 ---     1.00g    1.00g
[[email protected] ~]# vgextend vg1 /dev/sdb3
  Volume group "vg1" successfully extended
[[email protected] ~]# lvresize -L 100M /dev/vg1/lv1
  New size (25 extents) matches existing size (25 extents).
[[email protected] ~]# pvs
  PV         VG  Fmt  Attr PSize    PFree
  /dev/sdb1  vg1 lvm2 a--  1020.00m  920.00m
  /dev/sdb2  vg1 lvm2 a--  1020.00m 1020.00m
  /dev/sdb3  vg1 lvm2 a--  1020.00m 1020.00m

本文出自 “亂碼時代” 博客,請務必保留此出處http://juispan.blog.51cto.com/943137/1940032

[CentOS 7系列]LVM磁盤管理