13.7. 分割卷组

系统需要添加一个新的用户组“design”。一种处理方法是创建一个新的卷组来存放他们的数据。没有新的磁盘,但是现有磁盘上有大量的可用空间可以重新分配。

13.7.1. 确定可用空间

# pvscan 
pvscan -- reading all physical volumes (this may take a while...)
pvscan -- ACTIVE   PV "/dev/sda"  of VG "dev"   [1.95 GB / 0 free]
pvscan -- ACTIVE   PV "/dev/sdb"  of VG "sales" [1.95 GB / 1.27 GB free]
pvscan -- ACTIVE   PV "/dev/sdc"  of VG "ops"   [1.95 GB / 564 MB free]
pvscan -- ACTIVE   PV "/dev/sdd"  of VG "dev"   [1.95 GB / 0 free]
pvscan -- ACTIVE   PV "/dev/sde"  of VG "ops"   [1.95 GB / 1.9 GB free]
pvscan -- ACTIVE   PV "/dev/sdf"  of VG "dev"   [1.95 GB / 1.33 GB free]
pvscan -- ACTIVE   PV "/dev/sdg1" of VG "ops"   [996 MB / 432 MB free]
pvscan -- ACTIVE   PV "/dev/sdg2" of VG "dev"   [996 MB / 632 MB free]
pvscan -- total: 8 [13.67 GB] / in use: 8 [13.67 GB] / in no VG: 0 [0]
          
我们决定重新分配 /dev/sdg1 和 /dev/sdg2 给 design 组,所以首先我们必须将物理扩展移动到其他卷的空闲区域(在本例中,卷组 dev 使用 /dev/sdf,卷组 ops 使用 /dev/sde)。

13.7.2. 将数据从要使用的磁盘上移走

所选卷上仍然使用了一些空间,因此有必要将已使用的空间移动到其他卷上。

将所有已使用的物理扩展从 /dev/sdg1 移动到 /dev/sde,以及从 /dev/sdg2 移动到 /dev/sdf

# pvmove /dev/sdg1 /dev/sde
pvmove -- moving physical extents in active volume group "ops"
pvmove -- WARNING: moving of active logical volumes may cause data loss!
pvmove -- do you want to continue? [y/n] y
pvmove -- doing automatic backup of volume group "ops"
pvmove -- 141 extents of physical volume "/dev/sdg1" successfully moved

# pvmove /dev/sdg2 /dev/sdf
pvmove -- moving physical extents in active volume group "dev"
pvmove -- WARNING: moving of active logical volumes may cause data loss!
pvmove -- do you want to continue? [y/n] y
pvmove -- doing automatic backup of volume group "dev"
pvmove -- 91 extents of physical volume "/dev/sdg2" successfully moved
          

13.7.3. 创建新的卷组

现在,从 dev 中分割出 /dev/sdg2 并将其添加到名为“design”的新组中。可以使用 vgreduce 和 vgcreate 来完成此操作,但 vgsplit 命令将两者结合在一起。

# vgsplit dev design /dev/sdg2
vgsplit -- doing automatic backup of volume group "dev"
vgsplit -- doing automatic backup of volume group "design"
vgsplit -- volume group "dev" successfully split into "dev" and "design"
          

13.7.4. 移除剩余卷

接下来,从 ops 中移除 /dev/sdg1 并将其添加到 design 组。

# vgreduce ops /dev/sdg1
vgreduce -- doing automatic backup of volume group "ops"
vgreduce -- volume group "ops" successfully reduced by physical volume:
vgreduce -- /dev/sdg1

# vgextend design /dev/sdg1
vgextend -- INFO: maximum logical volume size is 255.99 Gigabyte
vgextend -- doing automatic backup of volume group "design"
vgextend -- volume group "design" successfully extended
          

13.7.5. 创建新的逻辑卷

现在创建一个逻辑卷。与其分配所有可用空间,不如保留一些备用空间,以备其他地方需要。

# lvcreate -L750M -n users design
lvcreate -- rounding up size to physical extent boundary "752 MB"
lvcreate -- doing automatic backup of "design"
lvcreate -- logical volume "/dev/design/users" successfully created
          

13.7.6. 在卷上创建文件系统

# mke2fs /dev/design/users
mke2fs 1.18, 11-Nov-1999 for EXT2 FS 0.5b, 95/08/09
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
96384 inodes, 192512 blocks
9625 blocks (5.00<!-- ) reserved for the super user
First data block=0
6 block groups
32768 blocks per group, 32768 fragments per group
16064 inodes per group
Superblock backups stored on blocks: 
        32768, 98304, 163840

Writing inode tables: done                            
Writing superblocks and filesystem accounting information: done
        

13.7.7. 挂载新卷

# mkdir -p /mnt/design/users mount /dev/design/users /mnt/design/users/
        

最好还在您的 /etc/fstab 文件中为该文件系统添加一个条目,如下所示

/dev/design/user
/mnt/design/users   ext2    defaults        1 2