Расширение файловой системы 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 только для удобства, пожалуйста, проверьте их перед выполнением разрушительных операций.

Другие вопросы по тегам