У меня есть сервер Ubuntu, работающий на EC2, с томом EBS, смонтированным на /
. Я изменил размер тома EBS до 16 ТБ, прежде чем понял, что его использование в качестве корневого тома подразумевает разметку, и что мне может понадобиться специальная схема разметки для увеличения размера.
$ df -hT
Filesystem Type Size Used Avail Use% Mounted on
udev devtmpfs 7.4G 0 7.4G 0% /dev
tmpfs tmpfs 1.5G 840K 1.5G 1% /run
/dev/xvda1 ext4 2.0T 1.8T 200G 90% /
tmpfs tmpfs 7.4G 0 7.4G 0% /dev/shm
tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs tmpfs 7.4G 0 7.4G 0% /sys/fs/cgroup
/dev/loop1 squashfs 56M 56M 0 100% /snap/core18/1932
/dev/loop3 squashfs 29M 29M 0 100% /snap/amazon-ssm-agent/2333
/dev/loop4 squashfs 33M 33M 0 100% /snap/amazon-ssm-agent/2996
tmpfs tmpfs 1.5G 0 1.5G 0% /run/user/1000
/dev/loop5 squashfs 56M 56M 0 100% /snap/core18/1944
/dev/loop6 squashfs 98M 98M 0 100% /snap/core/10577
/dev/loop2 squashfs 98M 98M 0 100% /snap/core/10583
Запустив fdisk -l
, я вижу, что /dev/xvda равняется 15. 6TiB, но что я использую только часть этого в /dev/xvda1:
Disk /dev/xvda: 15.6 TiB, 17179869184000 bytes, 33554432000 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xb32e823c
Device Boot Start End Sectors Size Id Type
/dev/xvda1 * 2048 4294967294 4294965247 2T 83 Linux
При попытке growpart /dev/xvda 1
, я обнаружил, что:
WARNING: MBR/dos partitioned disk is larger than 2TB. Additional space will go unused.
NOCHANGE: partition 1 could only be grown by 1 [fudge=2048]
После гуглинга, стало ясно, что мне нужно переразметить с помощью GPT и, возможно, включить GPT в ядре Ubuntu (?), если я хочу смонтировать больший корневой раздел. На самом деле меня не волнует, смонтирован ли EBS том в качестве корневого, на самом деле моими единственными целями являются (1) смонтировать где-нибудь EBS том объемом 16 ТБ и (2) сохранить данные из определенного каталога на текущем томе.
У меня практически нет опыта работы с подобными вещами; что здесь проще всего сделать?
После небольшого эксперимента могу сказать, что ответы на (1) и (2) - "да" и "да" - единственная реальная проблема - это попытка использовать в качестве корневого тома большой объем EBS .
Вы действительно можете смонтировать EBS том объемом 16 ТБ без разделов, а Ubuntu 18.04 справляется с ним без проблем. Поэтому проще всего создать новый, 16TB EBS том, смонтировать его на экземпляр EC2 и скопировать поверх данных, которые вам нужны.
Сначала, на всякий случай, вы захотите создать резервную копию любых данных, которые у вас есть на текущем томе. Для этого нужно остановить экземпляр EC2 (это необходимо только при выполнении снимка корневого тома). Затем перейдите на страницу Elastic Block Store Volumes консоли EC2 и выберите "создать снэпшот" в разделе "действия". После этого перезапустите экземпляр EC2. Более подробная информация здесь .
Создайте том EBS в консоли AWS, настройте его размер и тип (gpt3 подходит для спецификаций в вопросе, но смотрите "Amazon EBS Volume Types" для дополнительной информации), и прикрепите его к вашему запущенному экземпляру. На данном этапе нет необходимости останавливать экземпляр или прикасаться к его конфигурации.
SSH в экземпляр EC2 и проверить, что том подключен, но не смонтирован:
ubuntu:~$ lsblk
ИМЯ MAJ:MIN RM РАЗМЕР RO ТИП ТОЧКА КРЕПЛЕНИЯ
петля1 7:1 0 55.4M 1 петля /снэп/ядро18/1932
петля2 7:2 0 97.9M 1 петля /снэп/ядро/10583
петля3 7:3 0 28.1M 1 петля /снэп/амазон-ssm-агент/2333
петля4 7:4 0 32.3M 1 петля /снэп/амазон-ssm-агент/2996
петля5 7:5 0 55.4M 1 петля /снэп/ядро18/1944
петля6 7:6 0 97.9M 1 петля /снэп/ядро/10577
xvda 202:0 0 15.6T 0 диск
└─xvda1 202:1 0 2T 0 часть /
xvdf 202:80 0 16T 0 диск
Обратите внимание, что xvda (корневой том) имеет раздел под ним (xvda1) и является монтируется в /, в то время как новый том xvdf не имеет ни раздела, ни точки монтирования.
Свежие EBS тома не имеют файловой системы, поэтому вам нужно создать такую систему: sudo mkfs -t xfs /dev/xvdf
. Обратите внимание на правильный том, , иначе вы перезапишите данные, если попытаетесь создать новую файловую систему на томе, который уже содержит такую систему.
Создайте место для монтирования тома, я назову его "data": sudo mkdir /data
.
Монтируйте том, и вы увидите его в выводе df
. Опционально, обновите fstab файл, чтобы монтировать том автоматически после перезагрузки, как описано в здесь.
ubuntu:~$ sudo mount /dev/xvdf /data
ubuntu:~$ df -hT
Тип файловой системы Размер использованного объема Доступно Использовано% Установлено на
удев девтмпфс 7.4G 0 7.4G 0% /дев
tmpfs tmpfs 1.5G 828K 1.5G 1% / пробег
/dev/xvda1 ext4 2.0T 1.8T 180G 91% /
tmpfs tmpfs 7.4G 0 7.4G 0% /дев/шм
tmpfs tmpfs 5.0M 0 5.0M 0% / прогон/блокировка
tmpfs tmpfs 7.4G 0 7.4G 0% /sys/fs/cgroup
/dev/loop1 squashfs 56M 56M 0 100% /snap/core18/1932
/dev/loop3 сквошфы 29М 29М 0 100% /snap/amazon-ssm-agent/2333
/dev/loop4 squashfs 33M 33M 0 100% /snap/amazon-ssm-agent/2996
tmpfs tmpfs 1.5G 0 1.5G 0% / прогон/пользователь/1000
/dev/loop5 squashfs 56M 56M 0 100% /snap/core18/1944
/dev/loop6 squashfs 98M 98M 0 100% /snap/core/10577
/dev/loop2 squashfs 98M 98M 0 100% /snap/core/10583
/dev/xvdf xfs 16T 17G 16T 1% /data
Наконец, установите необходимые разрешения на файлы /данные
и скопируйте их на новый диск. Рассмотрим вариант использования rsync
здесь в качестве менее хрупкой альтернативы cp
.