Настройка сервера
Монтирование NVMe-дисков в Ubuntu
На этой странице
Поиск NVMe-дисков
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS,MODEL
sudo apt install -y nvme-cli
sudo nvme list
Системный диск — тот, разделы которого смонтированы в / (и обычно в /boot/efi): никогда не форматируйте его. У неиспользуемых дисков для данных нет разделов, значения FSTYPE и точки монтирования. lsblk считает в двоичных единицах, поэтому диск на 3,84 ТБ отображается примерно как 3.5T. Если у дисков уже указан FSTYPE, например linux_raid_member или ext4cat /proc/mdstat и findmnt.
Имена вроде /dev/nvme1n1 на этой странице — лишь примеры. На вашем сервере они могут быть другими и даже меняться между загрузками, поэтому сверяйте каждое имя с выводом lsblk, прежде чем выполнять команду, которая записывает данные на диск.
Форматирование и монтирование одного диска
- Создайте файловую систему. В Ubuntu по умолчанию используется ext4, а
отключает резерв 5% места для root, который тому с данными не нужен. Распространённая альтернатива для больших файлов — XFS (-m 0 sudo mkfs.xfs, из пакета xfsprogs).-L data1 /dev/nvme1n1sudo mkfs.ext4 -m 0 -L data1 /dev/nvme1n1 - Смонтируйте диск:
sudo mkdir -p /data sudo mount /dev/nvme1n1 /data - Сделайте монтирование постоянным. UUID не меняется между загрузками, а
nofailпозволяет серверу загрузиться, даже если диск отсутствует:
Для XFS укажите в этой строкеuuid=$(sudo blkid -s UUID -o value /dev/nvme1n1) echo "UUID=$uuid /data ext4 defaults,nofail 0 2" | sudo tee -a /etc/fstab sudo findmnt --verify sudo systemctl daemon-reloadxfsвместоext4. - Проверьте запись без перезагрузки:
Должен отобразитьсяsudo umount /data sudo mount -a df -h /data/dataразмером около 3.5T.
Чтобы использовать другие диски по отдельности, повторите шаги для /data2, /data3 и так далее. Если вы работаете не под root, сделайте себя владельцем точки монтирования командой sudo chown $USER: /data.
Объединение дисков для данных в RAID 0 с помощью mdadm
Вместо того чтобы монтировать диски по одному, их можно объединить. RAID 0 распределяет данные по всем дискам с чередованием (striping): получается один большой том — около 28 ТиБ из восьми дисков — с их суммарной пропускной способностью. Но у этого серьёзная обратная сторона. Если откажет любой из дисков, весь массив будет потерян, поэтому храните на нём данные, которые можно снова скачать или сгенерировать, а копии всего ценного держите в другом месте. Чтобы массив пережил отказ диска, есть RAID 10 (): он зеркалирует каждый блок ценой половины ёмкости.
- Установите mdadm и создайте массив только из дисков для данных. В этом примере их восемь; на сервере с RTX PRO 6000 укажите
и четыре имени:--raid-devices=4
Если mdadm предупреждает, что на диске, похоже, есть данные, остановитесь и ещё раз проверьтеsudo apt install -y mdadm sudo mdadm --create /dev/md0 --level=0 --raid-devices=8 \ /dev/nvme1n1 /dev/nvme2n1 /dev/nvme3n1 /dev/nvme4n1 \ /dev/nvme5n1 /dev/nvme6n1 /dev/nvme7n1 /dev/nvme8n1lsblk, прежде чем отвечать. - Проверьте массив: в выводе
cat /proc/mdstatдолжно бытьmd0 : active raid0со всеми дисками, аsudo mdadmдолжна показать состояние «clean».--detail /dev/md0 - Сохраните описание массива, чтобы при загрузке он собирался как
/dev/md0:sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf sudo update-initramfs -u - Создайте файловую систему и смонтируйте её так же, как для одного диска, но используя
/dev/md0. mkfs сам считывает параметры чередования из массива, поэтому дополнительная настройка не нужна:
Для восьми дисков должен отобразиться размер около 28T.sudo mkfs.ext4 -m 0 -L data /dev/md0 sudo mkdir -p /data uuid=$(sudo blkid -s UUID -o value /dev/md0) echo "UUID=$uuid /data ext4 defaults,nofail 0 2" | sudo tee -a /etc/fstab sudo findmnt --verify && sudo systemctl daemon-reload && sudo mount -a df -h /data
Проверка состояния дисков
sudo apt install -y smartmontools
sudo smartctl -a /dev/nvme1n1
sudo nvme smart-log /dev/nvme1n1
critical_warning и media_errors должны быть равны 0, available_spare должно оставаться выше available_spare_threshold, а percentage_used — это оценка износа от производителя. smartctl показывает те же данные с общим вердиктом PASSED или FAILED. Внутри ВМ тарифа с одним GPU эти показатели могут быть недоступны. Если диск сообщает об ошибках, создайте тикет в поддержку в личном кабинете: вышедшие из строя компоненты заменяются в приоритетном порядке.
Резервное копирование важных данных
Мы не делаем резервных копий локального хранилища, а по окончании аренды диски надёжно стираются, как описано на странице об удалении данных. Резервное копирование — ваша ответственность: копируйте чекпоинты, датасеты, которые не получится собрать заново, и конфигурацию в хранилище, которое вы контролируете. О переносе данных на сервер и с него читайте в разделе о rsync и scp.
rsync по SSH зеркалирует папку на другую вашу машину:
rsync -a --info=progress2 /data/checkpoints/ \
backup@203.0.113.20:/backups/gpu1/checkpoints/
sudo apt install -y restic
restic -r sftp:backup@203.0.113.20:/srv/restic/gpu1 init
restic -r sftp:backup@203.0.113.20:/srv/restic/gpu1 backup /data/checkpoints
restic -r sftp:backup@203.0.113.20:/srv/restic/gpu1 snapshots
restic -r sftp:backup@203.0.113.20:/srv/restic/gpu1 \
restore latest --target /tmp/restore-test
Устранение неполадок
- mkfs или mdadm выдаёт Device or resource busy. Диск смонтирован или уже входит в массив. Проверьте
lsblkиcat /proc/mdstat. - После перезагрузки массив появляется как /dev/md127. Он не был сохранён в
mdadm.conf; повторите шаг 3 из раздела о RAID. Запись в fstab продолжает работать, потому что в ней используется UUID файловой системы. - Диск не монтируется при загрузке. Благодаря
nofailсервер всё равно загружается. Войдите на сервер и проверьтеsudo findmntи--verify sudo journalctl.-b | grep-i mount
Не получается?
Создайте тикет в личном кабинете: укажите сервер, что вы запускали, и приложите вывод ошибок, если он есть. Инженеры отвечают круглосуточно.