在使用 LVM 管理磁盘的情况下,如果想要将文件系统扩展到逻辑卷中的新空间,可以按照以下步骤操作(假设文件系统为 xfs 格式):
-
使用
fdisk
或parted
工具对分区进行扩展,创建一个新分区。## 先查看下我们要扩展的文件系统是什么格式,比如xfs还是ext4,我要扩展的是xfs [root@test1cc ~]# df -Th Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/centos-root xfs 197G 58G 140G 29% / devtmpfs devtmpfs 3.8G 0 3.8G 0% /dev tmpfs tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs tmpfs 3.9G 419M 3.5G 11% /run tmpfs tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup /dev/sda1 xfs 1014M 145M 870M 15% /boot tmpfs tmpfs 781M 0 781M 0% /run/user/0 ## 使用lsblk查看目前的分区情况 [root@test1cc ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT fd0 2:0 1 4K 0 disk sda 8:0 0 100G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 99G 0 part ├─centos-root 253:0 0 197G 0 lvm / └─centos-swap 253:1 0 2G 0 lvm [SWAP] sdb 8:16 0 100G 0 disk ## 从上面我们可以看到sdb是新增加的物理磁盘,然后我们使用fdisk对其进行分区的创建以及文件系统的 [root@test1cc ~]# fdisk /dev/sdb 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. ## 这里我键入m可以查看帮助信息 Command (m for help): m Command action a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition g create a new empty GPT partition table G create an IRIX (SGI) partition table l list known partition types m print this menu n add a new partition o create a new empty DOS partition table p print the partition table q quit without saving changes s create a new empty Sun disklabel t change a partition's system id u change display/entry units v verify the partition table w write table to disk and exit x extra functionality (experts only) # 这里我键入n 新加一个分区 Command (m for help): n Partition type: p primary (1 primary, 0 extended, 3 free) e extended # 这里我键入p 选择新加分区为:主分区 Select (default p): p # 选择一个盘号,比如选择2就是 sdb2 Partition number (2-4, default 2): 2 # 这里选择开始的扇区值,默认就行 First cylinder (2611-4568, default 2611): 2611 # 这里选择结束的扇区值,默认就是全部划分 Last cylinder, +cylinders or +size{K,M,G} (2611-4568, default 4568): 4568 # 查看划分好的分区情况 命令(输入 m 获取帮助):p Disk /dev/sda:60 GiB,64424509440 字节,125829120 个扇区 单元:扇区 / 1 * 512 = 512 字节 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x4e52b0e8 设备 启动 起点 末尾 扇区 大小 Id 类型 /dev/sda1 * 2048 2099199 2097152 1G 83 Linux /dev/sda2 2099200 125829119 123729920 59G 8e Linux LVM # 将新划分的分区更改成lvm格式 命令(输入 m 获取帮助):t 分区号 (1,2, 默认 2): 2 # 指定要改成的id号,8e代表LVM Hex 代码(输入 L 列出所有代码):8e # 保存更改,这时候分区就做好了 Command (m for help): w The partition table has been altered! # 查看分区是否应更改 [root@test1cc ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT fd0 2:0 1 4K 0 disk sda 8:0 0 100G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 99G 0 part ├─centos-root 253:0 0 197G 0 lvm / └─centos-swap 253:1 0 2G 0 lvm [SWAP] sdb 8:16 0 100G 0 disk └─sdb2 8:17 0 100G 0 part
将新分区设置为 LVM 的物理卷(Physical Volume)。可以使用
pvcreate
命令来将新分区转化为物理卷。例如:pvcreate /dev/sdb2
。-
将新的物理卷添加到 LVM 卷组(Volume Group)中。可以使用
vgextend
命令将新的物理卷添加到指定的卷组中。例如:vgextend VG Name /dev/sdb2
。## 其实这时候可以用 vgdisplay 来查看卷组可用空间了 [root@test1cc ~]# vgdisplay --- Volume group --- VG Name centos System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 7 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 2 Act PV 2 VG Size 198.99 GiB PE Size 4.00 MiB Total PE 50942 Alloc PE / Size 50942 / 198.99 GiB ## 这里可以看出可分配的空间为0了 Free PE / Size 0 / 0 VG UUID js6vYn-qNne-v55x-20jM-tB1u-eEFY-0UIGtH
扩展逻辑卷(Logical Volume),使其占用新空间。可以使用
lvextend
命令将逻辑卷扩展到新的物理卷上。例如:lvextend -l +100%FREE LV Path
,其中+100%FREE
表示新的空间全部分配给逻辑卷。-
最后,需要利用
xfs_growfs
命令来将xfs文件系统扩展到新的空间。例如:xfs_growfs /dev/mapper/centos-root(Filesystem Name,使用df -h可以看到)
。注:如果是
ext4
文件系统,则需要使用resize2fs /dev/mapper/centos-root
来将ext4
文件系统扩展到新的空间