База знаний

Подключить дополнительный NVMe-том и смонтировать его

Поиск нового блочного устройства, выбор файловой системы, монтирование так, чтобы отсутствующий диск не остановил загрузку, и последующее увеличение без простоя.

Устройство появляется без перезагрузки

Дополнительный NVMe — это опция, продаваемая кратно пятистам гигабайтам, и она подключается на горячую. Том появляется как новое блочное устройство в течение нескольких секунд после обработки заказа. Никаких перезагрузок не происходит.

lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT

Корневой диск — это vda; новый получает следующую букву. Если он не появился, дайте udev немного времени и посмотрите ещё раз:

udevadm settle
ls /sys/class/block

Пропустите таблицу разделов

Раздел на виртуальном диске ничего вам не даёт и добавляет лишний шаг при каждом увеличении тома. Создавайте файловую систему прямо на устройстве:

mkfs.ext4 -L data /dev/vdb

Или, для больших файлов, записываемых множеством потоков одновременно:

mkfs.xfs -L data /dev/vdb

ext4 сжимается в офлайне, XFS вообще не сжимается. XFS быстрее при параллельных метаданных, ext4 прощает почти всё остальное. Для большинства людей это и есть всего лишь выбор.

Смонтируйте так, чтобы пропавший том не остановил загрузку

Используйте метку. Порядок устройств не гарантирован после пересборки, и сегодняшний vdb завтра может стать vdc.

mkdir -p /srv/data
echo "LABEL=data /srv/data ext4 defaults,noatime,nofail,x-systemd.device-timeout=10s 0 2" >> /etc/fstab
systemctl daemon-reload
mount -a
findmnt /srv/data

nofail и таймаут устройства — это самое главное в этой строке. Без них инстанс, который загружается до подключения тома, окажется в аварийной оболочке в ожидании диска, и вам придётся читать статью о консоли раньше, чем планировалось.

Trim по таймеру, а не при каждом удалении

Не добавляйте опцию монтирования discard. Непрерывный discard отправляет trim при каждом unlink, и на занятой файловой системе это приносит больше затрат, чем пользы. Вместо этого запускайте его периодически:

systemctl enable --now fstrim.timer
fstrim -v /srv/data

Увеличение тома

Закажите дополнительную ёмкость, затем расширьте файловую систему на месте. Никакого размонтирования и перезагрузки.

lsblk -o NAME,SIZE
resize2fs /dev/vdb          # ext4, by device
xfs_growfs /srv/data        # XFS, by mount point

Если перепутать эти два шага, вы получите непонятное сообщение об ошибке и никакого ущерба — именно так и должен вести себя инструмент.

Если нужен шифрование

cryptsetup luksFormat --type luks2 /dev/vdb
cryptsetup open /dev/vdb data
mkfs.ext4 -L data /dev/mapper/data

Сначала осознайте последствия. Том с парольной защитой не монтируется без вмешательства, поэтому каждая перезагрузка потребует человека у консоли, вводящего пароль. Размещение файла ключа на корневом диске устраняет эту проблему, но одновременно сводит на нет большую часть выгоды. Выбирайте осознанно, а не по умолчанию.

Проверка оборудования

fio --name=rw --rw=randwrite --bs=4k --size=2G --numjobs=4 --iodepth=32 --direct=1 --runtime=60 --time_based --group_reporting

Запускайте это на новом томе, никогда на /, и никогда на файловой системе, где хранится то, что вы хотите сохранить. Если результат будет на порядок ниже, чем указано на странице оборудования, отправьте в тикет вывод, и мы проверим хост, а не вас.

Готовы, когда вы готовы

Выберите город. Выберите размер. Оплатите монетой.

Никаких форм о том, кто вы, никакого ожидания одобрения человеком, никаких звонков для проверки. Счёт оплачен — и учётные данные приходят на почту.