A data centre machine has 6 disks attached as follows:
# pvscanpvscan -- ACTIVE PV "/dev/sda" of VG "dev" [1.95 GB / 0 free] pvscan -- ACTIVE PV "/dev/sdb" of VG "sales" [1.95 GB / 0 free] pvscan -- ACTIVE PV "/dev/sdc" of VG "ops" [1.95 GB / 44 MB free] pvscan -- ACTIVE PV "/dev/sdd" of VG "dev" [1.95 GB / 0 free] pvscan -- ACTIVE PV "/dev/sde1" of VG "ops" [996 MB / 52 MB free] pvscan -- ACTIVE PV "/dev/sde2" of VG "sales" [996 MB / 944 MB free] pvscan -- ACTIVE PV "/dev/sdf1" of VG "ops" [996 MB / 0 free] pvscan -- ACTIVE PV "/dev/sdf2" of VG "dev" [996 MB / 72 MB free] pvscan -- total: 8 [11.72 GB] / in use: 8 [11.72 GB] / in no VG: 0 [0]
# dfFilesystem 1k-blocks Used Available Use% Mounted on /dev/dev/cvs 1342492 516468 757828 41% /mnt/dev/cvs /dev/dev/users 2064208 2060036 4172 100% /mnt/dev/users /dev/dev/build 1548144 1023041 525103 66% /mnt/dev/build /dev/ops/databases 2890692 2302417 588275 79% /mnt/ops/databases /dev/sales/users 2064208 871214 1192994 42% /mnt/sales/users /dev/ops/batch 1032088 897122 134966 86% /mnt/ops/batch
As you can see the "dev" and "ops" groups are getting full so
a new disk is purchased and added to the system. It becomes
/dev/sdg
.
The new disk is to be shared equally between ops and dev so it is partitioned into two physical volumes /dev/sdg1 and /dev/sdg2 :
# fdisk /dev/sdgDevice contains neither a valid DOS partition table, nor Sun or SGI disklabel Building a new DOS disklabel. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won't be recoverable.
Command (m for help):
nCommand action e extended p primary partition (1-4)
pPartition number (1-4):
1First cylinder (1-1000, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-1000, default 1000):
500Command (m for help):
nCommand action e extended p primary partition (1-4)
pPartition number (1-4):
2First cylinder (501-1000, default 501):
Using default value 501
Last cylinder or +size or +sizeM or +sizeK (501-1000, default 1000):
Using default value 1000
Command (m for help):
tPartition number (1-4):
1Hex code (type L to list codes):
8eChanged system type of partition 1 to 8e (Unknown)
Command (m for help):
tPartition number (1-4):
2Hex code (type L to list codes):
8eChanged system type of partition 2 to 8e (Unknown)
Command (m for help):
wThe partition table has been altered! Calling ioctl() to re-read partition table. WARNING: If you have created or modified any DOS 6.x partitions, please see the fdisk manual page for additional information.
Next physical volumes are created on this partition:
# pvcreate /dev/sdg1pvcreate -- physical volume "/dev/sdg1" successfully created
# pvcreate /dev/sdg2pvcreate -- physical volume "/dev/sdg2" successfully created
The volumes are then added to the dev and ops volume groups:
# vgextend ops /dev/sdg1vgextend -- INFO: maximum logical volume size is 255.99 Gigabyte vgextend -- doing automatic backup of volume group "ops" vgextend -- volume group "ops" successfully extended
# vgextend dev /dev/sdg2vgextend -- INFO: maximum logical volume size is 255.99 Gigabyte vgextend -- doing automatic backup of volume group "dev" vgextend -- volume group "dev" successfully extended
# pvscanpvscan -- 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 / 0 free] pvscan -- ACTIVE PV "/dev/sdc" of VG "ops" [1.95 GB / 44 MB free] pvscan -- ACTIVE PV "/dev/sdd" of VG "dev" [1.95 GB / 0 free] pvscan -- ACTIVE PV "/dev/sde1" of VG "ops" [996 MB / 52 MB free] pvscan -- ACTIVE PV "/dev/sde2" of VG "sales" [996 MB / 944 MB free] pvscan -- ACTIVE PV "/dev/sdf1" of VG "ops" [996 MB / 0 free] pvscan -- ACTIVE PV "/dev/sdf2" of VG "dev" [996 MB / 72 MB free] pvscan -- ACTIVE PV "/dev/sdg1" of VG "ops" [996 MB / 996 MB free] pvscan -- ACTIVE PV "/dev/sdg2" of VG "dev" [996 MB / 996 MB free] pvscan -- total: 10 [13.67 GB] / in use: 10 [13.67 GB] / in no VG: 0 [0]
The next thing to do is to extend the file systems so that the users can make use of the extra space.
There are tools to allow online-resizing of ext2 file systems but here we take the safe route and unmount the two file systems before resizing them:
# umount /mnt/ops/batch
# umount /mnt/dev/users
We then use the e2fsadm command to resize the logical volume and the ext2 file system on one operation. We are using ext2resize instead of resize2fs (which is the default command for e2fsadm) so we define the environment variable E2FSADM_RESIZE_CMD to tell e2fsadm to use that command.
# export E2FSADM_RESIZE_CMD=ext2resize # e2fsadm /dev/ops/batch -L+500Me2fsck 1.18, 11-Nov-1999 for EXT2 FS 0.5b, 95/08/09 Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/ops/batch: 11/131072 files (0.0<!-- non-contiguous), 4127/262144 blocks lvextend -- extending logical volume "/dev/ops/batch" to 1.49 GB lvextend -- doing automatic backup of volume group "ops" lvextend -- logical volume "/dev/ops/batch" successfully extended ext2resize v1.1.15 - 2000/08/08 for EXT2FS 0.5b e2fsadm -- ext2fs in logical volume "/dev/ops/batch" successfully extended to 1.49 GB
# e2fsadm /dev/dev/users -L+900Me2fsck 1.18, 11-Nov-1999 for EXT2 FS 0.5b, 95/08/09 Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/dev/users: 12/262144 files (0.0% non-contiguous), 275245/524288 blocks lvextend -- extending logical volume "/dev/dev/users" to 2.88 GB lvextend -- doing automatic backup of volume group "dev" lvextend -- logical volume "/dev/dev/users" successfully extended ext2resize v1.1.15 - 2000/08/08 for EXT2FS 0.5b e2fsadm -- ext2fs in logical volume "/dev/dev/users" successfully extended to 2.88 GB
We can now remount the file systems and see that the is plenty of space.
# mount /dev/ops/batch
# mount /dev/dev/users
# df
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/dev/cvs 1342492 516468 757828 41% /mnt/dev/cvs
/dev/dev/users 2969360 2060036 909324 69% /mnt/dev/users
/dev/dev/build 1548144 1023041 525103 66% /mnt/dev/build
/dev/ops/databases 2890692 2302417 588275 79% /mnt/ops/databases
/dev/sales/users 2064208 871214 1192994 42% /mnt/sales/users
/dev/ops/batch 1535856 897122 638734 58% /mnt/ops/batch