一、普通目錄擴容
先查看當前磁盤使用情況:
[root@lvm ~]# df -h
文件系統 容量 已用 可用 已用% 掛載點
/dev/mapper/centos-root 17G 1.2G 16G 7% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.7M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 1014M 146M 869M 15% /boot
tmpfs 98M 0 98M 0% /run/user/0
創建一個/app目錄,給該目錄分配5G空間,下面開始實驗:
1、創建PV物理卷:
[root@lvm ~]# pvcreate /dev/sdb /dev/sdc
Physical volume "/dev/sdb" successfully created.
Physical volume "/dev/sdc" successfully created.
2、創建VG卷組:
[root@lvm ~]# vgcreate app /dev/sdb /dev/sdc
Volume group "app" successfully created
3、在上面app卷組基礎上創建LVM邏輯卷:
[root@lvm ~]# lvcreate -n lvapp -L 5G app
Logical volume "lvapp" created.
4、格式化lvapp這個邏輯卷:
[root@lvm ~]# mkfs.ext4 /dev/app/lvapp
mke2fs 1.42.9 (28-Dec-2013)
文件系統標籤=
OS type: Linux
塊大小=4096 (log=2)
分塊大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1310720 blocks
65536 blocks (5.00%) reserved for the super user
第一個數據塊=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
Allocating group tables: 完成
正在寫入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
5、創建一個/app目錄,並將/dev/app/lvapp掛載至/app目錄:
[root@lvm ~]# mkdir /app
[root@lvm ~]# mount /dev/app/lvapp /app/
[root@lvm ~]# df -h
文件系統 容量 已用 可用 已用% 掛載點
/dev/mapper/centos-root 17G 1.2G 16G 7% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.7M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 1014M 146M 869M 15% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/mapper/app-lvapp 4.8G 20M 4.6G 1% /app
下面開始測試給/app目錄擴容至6G。
6、先取消掛載:
[root@lvm ~]# umount /app/
[root@lvm ~]# df -h
文件系統 容量 已用 可用 已用% 掛載點
/dev/mapper/centos-root 17G 1.2G 16G 7% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.7M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 1014M 146M 869M 15% /boot
tmpfs 98M 0 98M 0% /run/user/0
7、使用lvextend命令擴容:
[root@lvm ~]# lvextend -L 6G /dev/app/lvapp
Size of logical volume app/lvapp changed from 5.00 GiB (1280 extents) to 6.00 GiB (1536 extents).
Logical volume app/lvapp successfully resized.
8、檢查磁盤完整性:
[root@lvm ~]# e2fsck -f /dev/app/lvapp
e2fsck 1.42.9 (28-Dec-2013)
第一步: 檢查inode,塊,和大小
第二步: 檢查目錄結構
第3步: 檢查目錄連接性
Pass 4: Checking reference counts
第5步: 檢查簇概要信息
/dev/app/lvapp: 11/327680 files (0.0% non-contiguous), 58462/1310720 blocks
9、重置磁盤容量:
[root@lvm ~]# resize2fs /dev/app/lvapp
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/app/lvapp to 1572864 (4k) blocks.
The filesystem on /dev/app/lvapp is now 1572864 blocks long.
10、重新掛載:
[root@lvm ~]# mount /dev/app/lvapp /app/
[root@lvm ~]# df -h
文件系統 容量 已用 可用 已用% 掛載點
/dev/mapper/centos-root 17G 1.2G 16G 7% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.7M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 1014M 146M 869M 15% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/mapper/app-lvapp 5.8G 20M 5.5G 1% /app
二、根目錄擴容
1、檢查文件系統使用情況:
[root@lvm ~]# df -h
文件系統 容量 已用 可用 已用% 掛載點
/dev/mapper/centos-root 17G 1.2G 16G 7% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.7M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 1014M 146M 869M 15% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/mapper/app-lvapp 5.8G 20M 5.5G 1% /app
2、使用fdisk創建一個新的分區:
[root@lvm ~]# fdisk /dev/sdd
歡迎使用 fdisk (util-linux 2.23.2)。
更改將停留在內存中,直到您決定將更改寫入磁盤。
使用寫入命令前請三思。
Device does not contain a recognized partition table
使用磁盤標識符 0x4260a25f 創建新的 DOS 磁盤標籤。
#此處輸入n,表示創建新的分區
命令(輸入 m 獲取幫助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
#此處輸入p表示創建主分區
Select (default p): p
#分區號根據實際情況寫,我們這是第一次創建分區,所以默認是1,可以不寫使用默認值也行
分區號 (1-4,默認 1):1
起始 扇區 (2048-20971519,默認爲 2048):
將使用默認值 2048
#這裏行末輸入要創建多大的分區,我們選擇2G,所以輸入+2G
Last 扇區, +扇區 or +size{K,M,G} (2048-20971519,默認爲 20971519):+2G
分區 1 已設置爲 Linux 類型,大小設爲 2 GiB
#w表示寫入
命令(輸入 m 獲取幫助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盤。
3、使用pvcreate命令創建/dev/sdd1物理卷:
[root@lvm ~]# pvcreate /dev/sdd1
Physical volume "/dev/sdd1" successfully created.
4、vgdisplay 查看系統中的卷組,根目錄所在的卷組是centos:
[root@lvm ~]# vgdisplay
--- Volume group ---
VG Name app
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 2
Act PV 2
VG Size 19.99 GiB
PE Size 4.00 MiB
Total PE 5118
Alloc PE / Size 1536 / 6.00 GiB
Free PE / Size 3582 / 13.99 GiB
VG UUID A9fjGc-PbU6-vrJv-DXy5-3hcE-Punp-ceda1p
--- Volume group ---
VG Name centos
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size <19.00 GiB
PE Size 4.00 MiB
Total PE 4863
Alloc PE / Size 4863 / <19.00 GiB
Free PE / Size 0 / 0
VG UUID 9TVteP-AgrQ-2I0y-H4yO-5kVI-nD5l-KOI24h
5、通過 vgextend 將物理卷sdd1加入卷組centos:
[root@lvm ~]# vgextend centos /dev/sdd1
Volume group "centos" successfully extended
這個時候只是卷組擴大了,但根目錄所在的邏輯卷/dev/mapper/centos-root並沒有擴大,所以根目錄空間並沒有變化,下面開始擴展根目錄可用空間。
6、使用lvextend擴展/dev/mapper/centos-root邏輯卷的大小,這個要注意的是,我們上面只給卷組擴容了2G,下面擴容邏輯卷的時候,必須要小於2G,等於2G也不行:
[root@lvm ~]# lvextend -L +1G /dev/mapper/centos-root
Size of logical volume centos/root changed from <17.00 GiB (4351 extents) to <18.00 GiB (4607 extents).
Logical volume centos/root successfully resized.
7、根目錄的文件系統xfs,使用 xfs_growfs 命令重置硬盤容量:
[root@lvm ~]# xfs_growfs /dev/mapper/centos-root
meta-data=/dev/mapper/centos-root isize=512 agcount=4, agsize=1113856 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=4455424, 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 4455424 to 4717568
8、查看根目錄文件系統使用情況,之前總容量是17G,可用16G,現在總容量是18G,可用17G:
[root@lvm ~]# df -h
文件系統 容量 已用 可用 已用% 掛載點
/dev/mapper/centos-root 18G 1.2G 17G 7% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.7M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 1014M 146M 869M 15% /boot
tmpfs 98M 0 98M 0% /run/user/0
/dev/mapper/app-lvapp 5.8G 20M 5.5G 1% /app
總結:
1、對於根目錄擴容,如果分區已經使用完,則需要使用fdisk命令,新建分區,然後新建PV物理卷,再將物理卷加入根目錄所在的卷組,接着再擴容邏輯卷。
2、對於普通文件目錄,如果物理卷組的空間夠用,則可以直接擴容邏輯卷組;對於有些目錄,取消掛載的話,可能會影響生產環境的業務。