Расширить файловую систему при добавлении жесткого диска без использования LVM?

По причинам, которые должны быть очевидны, ваш PATHне наследуется оболочкой привилегий, в которой sudoвыполняет свои команды. Вы можете облегчить это, указав полный путь кqmake(e. г.sudo $(which qmake))или поместив вызов qmakeв сценарий, который устанавливает свой собственный PATHи который вы вызываете с помощью sudo /path/to/my/qmake-script.sh.

2
10.09.2019, 07:19
2 ответа

В этом ответе я буду называть получившееся устройство «томом», а разделы, которые вы используете для его создания, — «устройствами».

LVM внутренне использует инструмент dmsetupдля настройки своих томов и использует часть дискового пространства для хранения метаданных, то есть информации о том, как настроены устройства.

Альтернативой является использование dmsetupвручную для создания устройств без необходимости явно выделенного пространства для хранения метаданных. Это также позволяет вам начать использовать эту функцию с разделом, который уже содержит данные. Допустим, у вас есть диск /dev/sda5 с файловой системой ext4. Его размер составляет 100 гигабайт, и чтобы получить его точный размер в запускаемых секторах:

# blockdev --getsz /dev/sda5
195310000

Допустим, вы приобрели новый жесткий диск sdb емкостью 300 ГБ и хотите использовать его для расширения sda5. Вы могли бы использовать для этого все устройство sdb без таблицы разделов, но для вашего собственного долгосрочного -здравомыслия, возможно, лучше создать один раздел, который охватывает весь диск, чтобы вы позже помнили, как диск использовался. Итак, у вас есть sdb1, размер которого blockdev сообщает как

# blockdev --getsz /dev/sdb1
583984375

Итак, чтобы объединить эти два устройства, ПЕРВОЕ, что вы должны сделать, это убедиться, что ваше старое устройство отключено. И, конечно же, я должен сказать, что даже перед этим сделайте резервную копию своих данных, если что-то пойдет не так. Итак, после процедуры резервного копирования запустите:

# umount /dev/sda5

, чтобы быть уверенным. ПРИМЕЧАНИЕ :Я никогда не пробовал это в системе с systemd, поэтому, пожалуйста, проверьте, есть ли лучший способ сделать это, чтобы избежать потенциальной отмены вашего ручного размонтирования.

Далее мы создадим файл, содержащий команды для настройки нового тома. Это требует некоторых ручных вычислений. В основном файл, который мы создаем, будет сообщать вам, по одной строке за раз, где каждая часть нового тома расположена на дисках. Итак, мы хотим, чтобы сектора 0 -195309999 (195310000 секторов всего )сопоставлялись с секторами устройства /dev/sda5 0 -195309999.Затем нам нужно, чтобы секторы 195310000 -779294374 (583984375 секторов всего )сопоставлялись с секторами устройства /dev/sdb1 0 -583984374. Для этого мы создаем файл /etc/mybigvolume.dmsetup. txt со следующими строками:

0 195310000 linear /dev/sda5 0
195310000 583984375 linear /dev/sdb1 0

Каждая строка имеет формат (все единицы в секторах = 512 байт):

<offset inside volume> <number of sectors> "linear" <source device> <source device offset>

Итак, читая вслух, строки означают:

  • Сектора целевого тома будут начинаться с 0 и идти вперед на 195310000 секторов, расположенных в устройстве /dev/sda5, начиная с сектора 0 внутри /dev/sda5

  • Сектора целевого тома будут начинаться с 195310000 и идти вперед на 583984375 секторов, расположенных в устройстве /dev/sdb1, начиная с сектора 0 внутри /dev/sdb1

Примечание :Для понимания чисел, если вы захотите добавить еще один идентичный диск 300G позже в конец, содержимое файла будет:

0 195310000 linear /dev/sda5 0
195310000 583984375 linear /dev/sdb1 0
779294375 583984375 linear /dev/sdc1 0

Вернуться к исходному примеру; Создав файл, теперь мы можем настроить том, чтобы начать его использовать. Воспользуемся для этого dmsetup create.

# dmsetup create mybigvolume < /etc/mybigvolume.dmsetup.txt

Если все пойдет хорошо, то есть ничего не выводится, ваш новый том должен теперь существовать как новое устройство с именем /dev/mapper/mybigvolume, которое имеет размер 195310000 + 583984375 = 779294375 секторов. Давайте проверим это:

# blockdev --getsz /dev/mapper/mybigvolume
779294375

Вы можете бежать

# dmsetup table

в любой момент, чтобы увидеть, какие устройства были настроены с помощью dmsetup.

Ура! Теперь несколько важных моментов, о которых стоит подумать:

  • Теперь вы должны начать использовать /dev/mapper/mybigvolume для доступа к вашему диску. Всегда. Если вы используете /dev/sda5, вы можете сломать свою файловую систему. Поэтому убедитесь, что у вас больше нет /dev/sda5. За исключением, конечно, /etc/mybigvolume.dmsetup.txtили любого другого места, где вы сохранили свою конфигурацию dmsetup.

  • Ваша файловая система по-прежнему использует только первые 195310000 секторов диска, пока вы специально не попросите ее начать использовать новое доступное пространство.Проверьте инструменты управления файловой системой для получения информации. Если бы вы использовали LVM, этот шаг все равно был бы необходим.

  • Эта настройка (, например. Конфигурация dmsetup )действует только до перезагрузки. Таким образом, вам нужно либо настроить систему на автоматический запуск команды dmsetup create...при загрузке ДО того, как будут смонтированы файловые системы, ЛИБО вручную запускать ее при каждой загрузке с последующим ручным монтированием тома. То, как это делается, сильно зависит от вашего дистрибутива Linux. Но это, вероятно, было бы похоже на то, как реализован cryptsetup (, который также использует dmsetup для настройки устройств ).

Пример записи в /etc/fstab:

/dev/mapper/mybigvolume  /data  ext4  defaults,noatime  0 0

Наконец, я хотел бы отметить, что риск сбоя вашего тома, конечно же, выше, чем сбой одного устройства. Но я не знаю о ваших настройках, возможно, вы используете этот /dev/mapper/mybigvolume как часть массива raid -1! В любом случае, удачи!:)

ПС. Не стесняйтесь задавать вопросы!

7
28.04.2021, 23:29

Если файловая система Btrfs и смонтирована,вы можете добавить к нему устройство (, такое как жесткий диск или раздел ). Пример:

btrfs device add /dev/sdc2 /current/mountpoint

Подробнее см. man 8 btrfs-device. Также:Использование Btrfs с несколькими устройствами . Это вообще не связано с драйвером преобразователя устройства -; сама файловая система делает то, что обычно делает LVM.

Я считаю, что ZFS аналогична, т. е. может обрабатывать несколько устройств сама по себе. Полезный поисковый запрос :«добавление диска в zpool».

2
28.04.2021, 23:29

Теги

Похожие вопросы