Расширение файловой системы Linux после изменения размера тома EBS
Я изменил размер тома EBS, используя консоль AWS Modify Volume. Вот что команда lsblk возвращает перед любым изменением:
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvdn 202:208 0 4G 0 disk
└─md0 9:0 0 16G 0 raid0 /mnt/data
xvdc 202:32 0 80G 0 disk
└─md1 9:1 0 160G 0 raid0 /mnt/temp
xvda 202:0 0 8G 0 disk
└─xvda1 202:1 0 8G 0 part /
xvdp 202:240 0 4G 0 disk
└─md0 9:0 0 16G 0 raid0 /mnt/data
xvdo 202:224 0 4G 0 disk
└─md0 9:0 0 16G 0 raid0 /mnt/data
xvdb 202:16 0 80G 0 disk
└─md1 9:1 0 160G 0 raid0 /mnt/temp
xvdq 202:4096 0 4G 0 disk
└─md0 9:0 0 16G 0 raid0 /mnt/data
Я увеличил размер xvdn(/dev/sdn) до 6G. После чего я перезапустил экземпляр. Примечание. Xvdn используется для создания массива RAID 0 из 4 устройств.
$ sudo file -s /dev/xvd*
/dev/xvda: DOS/MBR boot sector; GRand Unified Bootloader, stage1 version 0x3, stage2 address 0x2000, 1st sector stage2 0x800, stage2 segment 0x200, GRUB version 0.94, extended partition table (last)
/dev/xvda1: Linux rev 1.0 ext4 filesystem data, UUID=1afa51d9-105a-4c14-8f32-8b8b424b1c81 (needs journal recovery) (extents) (large files) (huge files)
/dev/xvdb: Linux Software RAID version 1.2 (1) UUID=cbe5ee82:c33cad21:699bec71:b4cf4a63 name=dbx_head:head_ephem level=0 disks=2
/dev/xvdc: Linux Software RAID version 1.2 (1) UUID=cbe5ee82:c33cad21:699bec71:b4cf4a63 name=dbx_head:head_ephem level=0 disks=2
/dev/xvdn: Linux Software RAID version 1.2 (1) UUID=c42b27c0:3586d4c5:635e2925:39a006e5 name=dbx_head:head_ebs level=0 disks=4
/dev/xvdo: Linux Software RAID version 1.2 (1) UUID=c42b27c0:3586d4c5:635e2925:39a006e5 name=dbx_head:head_ebs level=0 disks=4
/dev/xvdp: Linux Software RAID version 1.2 (1) UUID=c42b27c0:3586d4c5:635e2925:39a006e5 name=dbx_head:head_ebs level=0 disks=4
/dev/xvdq: Linux Software RAID version 1.2 (1) UUID=c42b27c0:3586d4c5:635e2925:39a006e5 name=dbx_head:head_ebs level=0 disks=4
Который установлен на xfs
тип файла:
$ mount
/dev/md0 on /mnt/data type xfs (rw,noatime,nodiratime,swalloc,attr2,largeio,inode64,logbsize=128k,sunit=256,swidth=1024,noquota)
/dev/md1 on /mnt/temp type xfs (rw,noatime,nodiratime,swalloc,attr2,largeio,inode64,sunit=256,swidth=512,noquota)
/dev/md0 on /xdlog type xfs (rw,noatime,nodiratime,swalloc,attr2,largeio,inode64,logbsize=128k,sunit=256,swidth=1024,noquota)
После перезапуска нет никаких изменений в размере, поэтому я сделал
$ xfs_growfs -d /dev/md0
meta-data=/dev/md0 isize=2048 agcount=17, agsize=262112 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=4194176, imaxpct=25
= sunit=32 swidth=128 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=32 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data size unchanged, skipping
Теперь lsblk
возвращает:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvdn 202:208 0 6G 0 disk
└─md0 9:0 0 16G 0 raid0 /mnt/data
xvdc 202:32 0 80G 0 disk
└─md1 9:1 0 160G 0 raid0 /mnt/temp
xvda 202:0 0 8G 0 disk
└─xvda1 202:1 0 8G 0 part /
xvdp 202:240 0 4G 0 disk
└─md0 9:0 0 16G 0 raid0 /mnt/data
xvdo 202:224 0 4G 0 disk
└─md0 9:0 0 16G 0 raid0 /mnt/data
xvdb 202:16 0 80G 0 disk
└─md1 9:1 0 160G 0 raid0 /mnt/temp
xvdq 202:4096 0 4G 0 disk
└─md0 9:0 0 16G 0 raid0 /mnt/data
Но когда я размер файла через df -h
, это показывает без изменений:
Filesystem Size Used Avail Use% Mounted on
devtmpfs 7.4G 96K 7.4G 1% /dev
tmpfs 7.4G 55M 7.3G 1% /dev/shm
/dev/xvda1 7.8G 1.8G 6.0G 23% /
tmpfs 7.4G 24K 7.4G 1% /home/xdaux/tmp
tmpfs 7.4G 124K 7.4G 1% /home/xdcrm/tmp
/dev/md0 16G 35M 16G 1% /xdlog
/dev/md1 160G 3.1G 157G 2% /mnt/temp
Что я делаю неправильно / отсутствует здесь?
1 ответ
xvdn
является частью массива RAID0 (md0
), который используется файловой системой. Чтобы расширить файловую систему, вам необходимо расширить md0
массив, но это требует, чтобы вы сначала расширили все четыре компонента устройства. В принципе:
- сделайте снимок тома EBS и / или другие резервные копии. НЕ пропускайте этот шаг!
- изменить размер всех четырех устройств
- размонтировать файловую систему (
umount /dev/md0
) - остановить массив (
mdadm -S /dev/md0
) - собрать массив с
--update=devicesize
вариант (mdadm --assemble --update=devicesize /dev/md0 /dev/xvdn /dev/xvdp /dev/xvdo /dev/xvdq
) - перемонтировать файловую систему (
mount /dev/md0 /xdlog
) - увеличить файловую систему (
xfs_growfs /dev/md0
)
Обратите внимание, что я разместил команды bash только для удобства, пожалуйста, проверьте их перед выполнением разрушительных операций.