Изменение размера MDADM / Software RAID, лежащего в основе раздела и файловой системы

Я нахожусь в пространстве на моем корневом разделе и хотел бы украсть некоторые из другого раздела. Приводы – 2×120 ГБ с программным RAID-массивом mdadm. Я использую CentOS 6.5 64-bit. Я использовал настройку RAID для установки установщика centos. Похоже, что большинство из HowTos заставляют меня не иметь подстилающих разделов. Таким образом, у других будет только / dev / md0. Они будут выполнять resize2fs / dev / md0 25G (например, сокращение от 50G), а затем использовать mdadm для изменения размера и т. Д.

Макет:

 Размер файловой системы Используется Использовать% Установлено на
 / dev / md0p5 9.7G 7.1G 2.1G 78% /
 tmpfs 16G 0 16G 0% / dev / shm
 / dev / md0p1 194M 99M 86M 54% / boot
 / dev / md0p2 68G 7.2G 57G 12% / var / www

cat / proc / mdstat:

 Личности: [raid1] 
 md0: active raid1 sdb [1] sda [0]
       117220736 блоки [2/2] [UU]

 неиспользуемые устройства: 

Вот fdisk:

 fdisk -l

 Диск / dev / sda: 120,0 ГБ, 120034123776 байт
 255 голов, 63 сектора / дорожка, 14593 цилиндра
 Единицы = цилиндры 16065 * 512 = 8225280 байт
 Размер сектора (логический / физический): 512 байт / 512 байт
 Размер ввода / вывода (минимальный / оптимальный): 512 байт / 512 байт
 Идентификатор диска: 0x00035afc

    Начальная команда загрузки устройства
 / dev / sda1 * 1 26 204800 83 Linux
 Перегородка 1 не заканчивается на границе цилиндра.
 / dev / sda2 26 8950 71680000 83 Linux
 / dev / sda3 8950 11039 16777216 82 Linux swap / Solaris
 / dev / sda4 11039 14594 28557312 5 Расширенные
 / dev / sda5 11039 12314 10240000 83 Linux

 Диск / dev / sdb: 120.0 ГБ, 120034123776 байт
 255 голов, 63 сектора / дорожка, 14593 цилиндра
 Единицы = цилиндры 16065 * 512 = 8225280 байт
 Размер сектора (логический / физический): 512 байт / 512 байт
 Размер ввода / вывода (минимальный / оптимальный): 512 байт / 512 байт
 Идентификатор диска: 0x00035afc

    Начальная команда загрузки устройства
 / dev / sdb1 * 1 26 204800 83 Linux
 Перегородка 1 не заканчивается на границе цилиндра.
 / dev / sdb2 26 8950 71680000 83 Linux
 / dev / sdb3 8950 11039 16777216 82 Linux swap / Solaris
 / dev / sdb4 11039 14594 28557312 5 Расширенные
 / dev / sdb5 11039 12314 10240000 83 Linux

 Диск / dev / md0: 120.0 ГБ, 120034033664 байт
 2 головки, 4 сектора / дорожка, 29305184 цилиндров
 Единицы = цилиндры 8 * 512 = 4096 байт
 Размер сектора (логический / физический): 512 байт / 512 байт
 Размер ввода / вывода (минимальный / оптимальный): 512 байт / 512 байт
 Идентификатор диска: 0x00035afc

     Начальная команда загрузки устройства
 / dev / md0p1 * 257 51456 204800 83 Linux
 Перегородка 1 не заканчивается на границе цилиндра.
 / dev / md0p2 51457 17971456 71680000 83 Linux
 Раздел 2 не заканчивается на границе цилиндра.
 / dev / md0p3 17971457 22165760 16777216 82 Linux swap / Solaris
 Раздел 3 не заканчивается на границе цилиндра.
 / dev / md0p4 22165761 29305088 28557312 5 Расширенные
 Раздел 4 не заканчивается на границе цилиндра.
 / dev / md0p5 22166273 24726272 10240000 83 Linux

Итак, что я могу сделать, чтобы развить корневой раздел и сжать раздел / var / www?

    Поскольку вы разделили свой RAID так, как будто это был один диск, в этом случае вы можете вообще игнорировать RAID. Таким образом, это просто проблема изменения размера / смещения разделов.

    Так, например, вы можете сжать раздел www, удалить своп, а затем переместить корневой раздел влево, чтобы его увеличить.

    Или, если это кажется сложным, и вам не нужны строго отдельные разделы, вы можете объединить корневой раздел в ваш www-раздел, так как он уже достаточно велик, чтобы содержать как root, так и www. Это то, что я буду делать.

    # mount stuff mkdir /mnt/root /mnt/www mount /dev/md0p5 /mnt/root mount /dev/md0p2 /mnt/www # since /mnt/www will be the new root, move www files to /var/www mkdir -p /mnt/www/var/www mv /mnt/www/* /mnt/var/www/ # copy the root files rsync -avAHSX /mnt/root/. /mnt/www/. # comment out old root partition in fstab # change /var/www to / in fstab # update bootloader and reboot 

    Этот подход также имеет то преимущество, что, если что-то пойдет не так, исходный корневой раздел по-прежнему неповрежден, поэтому вы можете вернуть операцию.

    Как только все будет работать с объединенным разделом root + www, вы можете удалить старый корневой раздел и развить его до полного размера диска.

    Или вы можете решить, что все-таки захотите придерживаться отдельных разделов и переместите файлы www в старый корневой раздел, если вы считаете, что в обозримом будущем это будет достаточно большим для вашего www.

    Или вы можете сжать раздел www, чтобы освободить место для нового.

    Безграничные возможности…