Как уменьшить размер тома? один мой друг задал мне этот вопрос.

Вам может быть интересно, можем ли мы уменьшить размер тома EBS? Ответ — нет. Уменьшить размер тома EBS невозможно. Когда у вас есть 100 ГБ EBS, и вы решите изменить его на 30 ГБ, вы получите сообщение об ошибке: Размер тома можно только увеличить, но не уменьшить. Это ужасно …

Но не волнуйтесь. Мы также могли бы уменьшить размер тома EBS. Тем не менее, это непростая задача, поскольку это не просто. Вот хитрость:

  1. Сделайте снимок тома
  2. Создайте новый меньший том EBS
  3. Прикрепить новый том
  4. Отформатируйте новый том
  5. Смонтировать новый том
  6. Скопируйте данные со старого тома на новый том
  7. Подготовьте новый том
  8. Отсоединить и размонтировать старый том

Начиная

Давайте тренироваться.

Предположим, что у нас есть:

  • Экземпляр с именем my-instance в ap-southeast-1a зона
  • Имя тома EBS объемом 100 ГБ old-volume
  • Мы хотим уменьшить до 30 ГБ и назвать его new-volume
    Нам нужно будет закрыть экземпляр, чтобы предотвратить несоответствия.

Создайте новый меньший том EBS

  1. Убедитесь, что экземпляр выключен
  2. Перейти к разделу Elastic Block Store Volumes
  3. Нажмите «Создать том».
  4. Выберите тот же тип тома, что и ваш старый том
  5. Введите желаемый размер; В нашем случае 30.
  6. Выбрать зону доступности; Том будет доступен инстансу в той же зоне доступности, что и ap-southeast-1a.
  7. Добавить тег с ключом: имя и значение: новый том

Альтернативный текст
Прикрепить новый том

  1. Щелкните правой кнопкой мыши новый том.
  2. Щелкните Прикрепить том.
  3. Выберите имя экземпляра my-instance .
  4. Щелкните Прикрепить.

Мы могли бы запустить экземпляр и войти в SSH. Список всех доступных томов с lsblk. Новый том находится в /dev/xvdf.

Отформатируйте новый том

  1. Проверьте, есть ли на томе какие-либо данные или нет, используя команду sudo file -s /dev/xvdf .
  2. Если он отображается /dev/xvdf: data, это означает, что том пуст. Мы могли бы отформатировать том.
  3. Если он отображает вывод, отличный от указанного выше, это означает, что на томе есть данные. НЕ форматируйте том, если вы видели этот вывод.
  4. Отформатируйте том с помощью команды sudo mkfs -t ext4 /dev/xvdf .

Смонтировать новый том

  1. Создайте каталог для монтирования с помощью команды sudo mkdir /mnt/new-volume .
  2. Смонтируйте новый том в каталог с помощью команды sudo mount /dev/xvdf /mnt/new-volume.
  3. Проверить громкость командой df -h; Теперь новый том должен быть смонтирован.

Скопируйте данные со старого тома на новый том

  1. Используйте rysnc для копирования со старого тома на новый том sudo rsync -axv / /mnt/new-volume/.
  2. Расслабьтесь и подождите, пока это не закончится. Получите кофе!

Подготовить новый том

  1. Установите grub на новый том с помощью команды sudo grub-install --root-directory=/mnt/new-volume/ --force /dev/xvdf.
  2. Размонтировать новый том sudo umount /mnt/new-volume.
  3. Проверять UUID используя команду blkid .
  4. Скопируйте UUID из /dev/xvda1 (вставьте в любом месте, чтобы сделать резервную копию этого UUID); это твой старый UUID.
  5. Используйте tune2fs для замены UUID sudo tune2fs -U COPIED_UUID /dev/xvdf; COPIED_UUID — строковое значение из пункта 4.
  6. Проверьте системную метку на старом томе с помощью команды sudo e2label /dev/xvda1 ; Он отобразит строку вроде cloudimg-rootfs.
  7. Замените метку нового тома меткой старого тома с помощью команды sudo e2label /dev/xvdf cloudimg-rootfs .
  8. Теперь мы можем выйти из SSH.

Отключить старый том

 1.  Stop instance `my-instance`
 2.  Detach `old-volume`
 3.  Detach `new-volume`
 4.  Attach new-volume to `/dev/sda1`
 5.  Start instance my-instance
Войти в полноэкранный режим

Выйти из полноэкранного режима

Альтернативный текст
После того, как мы завершим все шаги, описанные выше, мы можем проверить наш экземпляр, войдя в SSH.

Мы могли бы удалить old-volume а также snapshot-old-volume если наша система работает правильно. Я предпочитаю хранить снимок в течение недели/месяца перед его удалением.

Вывод

Мы не можем просто уменьшить размер тома EBS. Все, что мы можем сделать, это создать новый том меньшего размера.

Надеюсь, это поможет!