Я использую AWS для своего производственного сервера. Сегодня мой mongodb перестал работать и сообщает, что недостаточно места для ведения журнала. Чтобы добавить больше места, я отредактировал столбец в консоли AWS и увеличил размер тома до 16 ГБ. Результат lsblk в командной строке Linux выглядит следующим образом
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 16G 0 disk
└─xvda1 202:1 0 8G 0 part /
Команда печати в parted показывает результат ниже
print
Model: Xen Virtual Block Device (xvd)
Disk /dev/xvda: 17.2GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
128 1049kB 2097kB 1049kB BIOS Boot Partition bios_grub
1 2097kB 8590MB 8588MB ext4 Linux
2 8590MB 17.2GB 8590MB Linux
, а df-h показывает результат ниже результат
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 7.8G 4.3G 3.5G 56% /
devtmpfs 488M 56K 488M 1% /dev
tmpfs 498M 0 498M 0% /dev/shm
Мне нужно добавить дополнительное дополнительное пространство, которое составляет 8 ГБ, в / dev / xvda1, не теряя ничего на сервере. Я новичок в серверах Linux. Любая помощь или предложения приветствуются
РЕДАКТИРОВАТЬ1 - после Google я также пытался сделать resize2fs, но он показывает следующий результат
resize2fs /dev/xvda1
resize2fs 1.42.12 (29-Aug-2014)
The filesystem is already 2096635 (4k) blocks long. Nothing to do!
Во-первых, вы должны сделать полную резервную копию, прежде чем пытаться сделать что-либо подобное.
Вам необходимо удалить этот 2-й раздел из таблицы разделов (, например. с помощью gdisk
или parted
), затем расширьте первый раздел до конца вновь доступного пространства и, наконец, увеличьте файловую систему, чтобы она знала, что у нее есть больше доступного хранилища -этот последний шаг отличается для каждого типа файловой системы. например. если fs - это xfs, вы должны использовать xfs_growfs
. Для ext2/3/4 вы должны использовать resize2fs
. На этом сайте есть несколько вопросов с хорошими ответами о расширении файловой системы -. Я настоятельно рекомендую тщательно изучить эту тему, прежде чем пытаться это сделать. Это несложно, но даже небольшие ошибки могут привести к катастрофической потере данных.
Другой вариант — просто создать новую виртуальную машину с диском 16 Гб или больше (или небольшим диском /dev/xvda boot/OS емкостью 1 -4 ГБ и вторым диском /dev/xvdb большего размера для базы данных -, что упростит задачу, если вам когда-нибудь понадобится снова увеличить объем памяти ). Получите вторую виртуальную машину, работающую точно так же, как оригинал, а затем скопируйте данные с исходной виртуальной машины на новую.
rsync
, вероятно, лучше всего подходит для копирования -вы можете выполнить rsync данных, пока исходная виртуальная машина все еще работает и обслуживает запросы, чтобы передать большую часть данных,затем отключите службу базы данных на нем и снова выполните rsync, чтобы передать любые данные, которые были добавлены/изменены/удалены с момента запуска первого rsync. Затем выключите оригинал и перезапустите новую виртуальную машину, чтобы она имела тот же IP-адрес и т. д., что и оригинал. Это сведет к минимуму время простоя.