Объединение дисков

Как правильно задавать вопросы Правильно сформулированный вопрос и его грамотное оформление способствует высокой вероятности получения достаточно содержательного и по существу ответа. Общая рекомендация по составлению тем: 1. Для начала воспользуйтесь поиском форума. 2. Укажите версию ОС вместе с разрядностью. Пример: LM 19.3 x64, LM Sarah x32 3. DE. Если вопрос касается двух, то через запятую. (xfce, KDE, cinnamon, mate) 4. Какое железо. (достаточно вывод inxi -Fxz в спойлере (как пользоваться спойлером смотрим здесь)) или же дать ссылку на hw-probe 5. Суть. Желательно с выводом консоли, логами. 6. Скрин. Просьба указывать 2, 3 и 4 независимо от того, имеет ли это отношение к вопросу или нет. Так же не забываем об общих правилах Как пример вот
Аватара пользователя

Автор темы
rogoznik
Сообщения: 10066
Зарегистрирован: 27 июн 2017, 13:36
Решено: 129
Откуда: Нижний Тагил
Благодарил (а): 777 раз
Поблагодарили: 1962 раза
Контактная информация:

Объединение дисков

#1

19 дек 2022, 17:24

Есть у меня 2 ssd: nvme1 и nvme2.
Оба на 1ТБ и примерно одинаковые по характеристикам.
Единственное один уже некоторое время используется, второй новый.
Хочу их объединить в единое пространство и установить систему.

Вижу 2 способа:
1. LVM
2. Btrfs

Склоняюсь к btrfs. Вот только пока не знаю как сделать. Знаю что есть как минимум 2 способа:
1. Присоединить один к другому btrfs-vol -a(тут вроде как низкая скорость чтения/записи)
2. Объединить в raid0 mkfs.btrfs -m raid0(тут вроде как даже повышается скорость чтения/записи)

Хотелось бы услышать аргументы за тот или иной вариант с примерами как лучше объединить и потом поставить на это систему.
Система будет Manjaro
ИзображениеИзображение

Аватара пользователя

WWolf
Сообщения: 3906
Зарегистрирован: 14 фев 2018, 00:51
Решено: 32
Откуда: Краснодар
Благодарил (а): 1689 раз
Поблагодарили: 1214 раз
Контактная информация:

Объединение дисков

#2

19 дек 2022, 17:27

rogoznik, вопрос зачем? ладно бы зеркало, а расширить... проще уже линковать, имхо...

Аватара пользователя

Автор темы
rogoznik
Сообщения: 10066
Зарегистрирован: 27 июн 2017, 13:36
Решено: 129
Откуда: Нижний Тагил
Благодарил (а): 777 раз
Поблагодарили: 1962 раза
Контактная информация:

Объединение дисков

#3

19 дек 2022, 17:28

WWolf, в том то и дело что не хочу так - неудобно
ИзображениеИзображение

Аватара пользователя

slant
Сообщения: 4517
Зарегистрирован: 21 июн 2017, 18:09
Решено: 99
Благодарил (а): 51 раз
Поблагодарили: 1998 раз
Контактная информация:

Объединение дисков

#4

19 дек 2022, 19:19

rogoznik писал(а):
19 дек 2022, 17:24
1. Присоединить один к другому btrfs-vol -a(тут вроде как низкая скорость чтения/записи)
После этого нужно сделать balance с указанием профилей raid0 для data и meatadata, и желательно - профиль raid1 для sys. Тогда это будет именно raid0 а не просто аналог jbod. sys желательно в raid1 чтобы иметь резервирование самых критических данных, к ним очень редко обращаются, они нужны в основном чтобы собрать и смонтировать FS, и все.
Понижения скорости не будет.
rogoznik писал(а):
19 дек 2022, 17:24
2. Объединить в raid0 mkfs.btrfs -m raid0(тут вроде как даже повышается скорость чтения/записи)
Это пересоздание раздела с нуля, но преимуществ по скорости работы оно не даст, если в предыдущем случае balance был сделан.

И вообще - нету уже давно btrfs-vol. Есть просто команда btrfs ... - все через нее.
Да и mkfs.btrfs надо вызывать не так, чтобы получился именно raid - там надо указать профили для data и metadata отдельными ключами. Иначе тоже микс получится.

Преимущество btrfs работы с массивами как раз в том, что вид рейда задается профилями. И может быть даже смешанным - т.е. данные в raid0 а метаданные - в raid1, например. И перестраивать их через balance можно прямо на лету, если места хватает (т.е. если есть два диска по 1tb и данных на них менее 1tb, можно из raid0 сделать raid1 одной командой. Как и обратно.)
Ну и если когда-то появится третий диск - его можно так же легко добавить. И потом опять запустить balance. Как и при исключении диска. И что мне нравится в массивах btrfs - все эти операции совершенно прозрачны для системы. Никуда ничего писать в конфигах не надо. В fstab тоже ничего менять не надо. UUID диска не меняется, части массива на устройствах находятся полностью автоматически во время загрузки в процессе монтирования.

Т.е. можно сначала спокойно поставить систему на один диск, потом добавить второй и сделать balance с нужными профилями - и все. А вот устанавливаться на btrfs создавая для нее массив из устройств установщик минта не умеет. Можно скормить существующую btrfs не форматируя, но иногда он все равно тупит.

Аватара пользователя

slant
Сообщения: 4517
Зарегистрирован: 21 июн 2017, 18:09
Решено: 99
Благодарил (а): 51 раз
Поблагодарили: 1998 раз
Контактная информация:

Объединение дисков

#5

19 дек 2022, 19:21

Только ради бога - не клади туда swap файл. Хоть оно теперь и официально поддерживается, но ценой отключения части фич и возможностей. Значительной части. И массивы - одна из них. swap файл может быть только там, где профиль single.

UPD - забыл. Перед установкой на btrfs, чтобы не было потом мучительно больно, крайне желательно прогнать на машине тест памяти и убедиться, что с ней все ОК. От битого диска и/или контроллера, шлейфа и т.д. эта fs мало страдает (и сразу дает знать что проблемы есть - контрольные суммы же), а вот если будет битая память во время создания - потом проблем не оберешься, из-за не сходящихся контрольных сумм, как минимум.

Аватара пользователя

Автор темы
rogoznik
Сообщения: 10066
Зарегистрирован: 27 июн 2017, 13:36
Решено: 129
Откуда: Нижний Тагил
Благодарил (а): 777 раз
Поблагодарили: 1962 раза
Контактная информация:

Объединение дисков

#6

19 дек 2022, 19:30

slant писал(а):
19 дек 2022, 19:21
не клади туда swap файл
Об этом я помню - ты где-то писал об этом.
slant писал(а):
19 дек 2022, 19:19
установщик минта не умеет
Ставить буду Manjaro, но есть вероятность что и он не умеет.

Можешь расписать порядок действий. Использующийся диск могу форматнуть в btrfs(он сейчас в ext4).
1. На диск с btrfs ставлю систему.
2. Присоединяю второй диск. Как это правильно сделать?
slant писал(а):
19 дек 2022, 19:19
сделать balance с указанием профилей raid0 для data и meatadata, и желательно - профиль raid1 для sys. Тогда это будет именно raid0 а не просто аналог jbod. sys желательно в raid1
Так понимаю это шаг 3. Как это правильно сделать?
ИзображениеИзображение

Аватара пользователя

slant
Сообщения: 4517
Зарегистрирован: 21 июн 2017, 18:09
Решено: 99
Благодарил (а): 51 раз
Поблагодарили: 1998 раз
Контактная информация:

Объединение дисков

#7

19 дек 2022, 19:45

Чисто по аргументам, если сравнивать два варианта:

LVM: + Можно использовать любые FS поверх.
- Не гибко. Сама по себе она манипулирует только блочными устройствами, а менять размеры FS поверх нее - это надо чтобы сама FS умела. Большинство умеет только offline если вообще умеет. Чтобы получить raid - это еще один слой абстракции, иначе будет просто jbod (объединенное последовательно пространство без выигрыша в скорости).

BTRFS: + Очень гибко. Меняем размеры FS, добавляем/убираем устройства, изменяем тип raid - и все это прямо на лету, из работающей системы. Прозрачно. И весьма просто - практически нет риска запутаться и напортачить. (В lvm изменение размера существующего logical volume с существующей fs поверх - уже не такая тривиальная задача можно и накосячить до потери данных на этой FS).
- Это именно fs. Т.е. не блочными устройствами мы манипулируем, и как в lvm полноценный раздел для другой FS создать не можем.

Аватара пользователя

slant
Сообщения: 4517
Зарегистрирован: 21 июн 2017, 18:09
Решено: 99
Благодарил (а): 51 раз
Поблагодарили: 1998 раз
Контактная информация:

Объединение дисков

#8

19 дек 2022, 20:01

rogoznik писал(а):
19 дек 2022, 19:30
Можешь расписать порядок действий. Использующийся диск могу форматнуть в btrfs(он сейчас в ext4).
1. На диск с btrfs ставлю систему.
2. Присоединяю второй диск. Как это правильно сделать?
1. Ставишь систему - как обычно но на btrfs. Разбивка efi, swap (половина размера - в твоем случае лучше иметь два свапа половинного размера, по одному на диск), остальное - корень. Далее с уже установленной системы:
2. Бьешь второй диск аналогично. Свап на разделе создаешь и подключаешь в fstab уже сам. Установка дублирующего загрузчика во второй efi - по желанию - т.к. будет не raid1 - смысла не много.
3. btrfs device add </dev/sdb3> /
sdb3 - это типа раздел, где будет вторая часть FS. Может быть пустым, или если ругается что там что-то есть - добавлять нужно через ключ -f. А / на конце - это указание к какой системе подключать. Все операции выполняются online, и соответственно - у тебя она будет смонтирована как корневая - это и указывается.
4. btrfs balance start -draid0 -mraid0 -f /
(без -f может ругаться что данные станут хранится менее надежно, т.к. по умолчанию у тебя будет raid1 из метаданных)
5. btrfs balance start -sraid1 -f /
(sys без -f вообще не дает менять никак - для страховки. Но тебе именно надо).

И все. Никаких конфигов, никаких других настроек. Никаких перезагрузок. Оно уже работает. :)

Аватара пользователя

slant
Сообщения: 4517
Зарегистрирован: 21 июн 2017, 18:09
Решено: 99
Благодарил (а): 51 раз
Поблагодарили: 1998 раз
Контактная информация:

Объединение дисков

#9

19 дек 2022, 20:08

Опять забыл - бить диски строго одинаково не нужно. btrfs очень демократически относится к устройствам не совпадающим по размеру. Сама все подгонит как надо, динамически.

Аватара пользователя

Автор темы
rogoznik
Сообщения: 10066
Зарегистрирован: 27 июн 2017, 13:36
Решено: 129
Откуда: Нижний Тагил
Благодарил (а): 777 раз
Поблагодарили: 1962 раза
Контактная информация:

Объединение дисков

#10

19 дек 2022, 20:19

slant писал(а):
19 дек 2022, 20:01
5. btrfs balance start -sraid1 -f /
(sys без -f вообще не дает менять никак - для страховки. Но тебе именно надо).
Применяем, вроде к корню, но ты пишешь про /sys. Так и должно быть?
ИзображениеИзображение

Аватара пользователя

slant
Сообщения: 4517
Зарегистрирован: 21 июн 2017, 18:09
Решено: 99
Благодарил (а): 51 раз
Поблагодарили: 1998 раз
Контактная информация:

Объединение дисков

#11

19 дек 2022, 20:38

Не /sys - раздел на диске.

sys - это один из видов блоков данных на btrfs. Есть data, metadata, и sys. Каждому из этих видов можно назначить отдельный профиль - single, dup, raid0, raid1, и т.д.

data - основная часть пользовательских данных - тела файлов.
metadata - структура, каталоги, подразделы, и очень маленькие файлы (размером менее кластера на диске), могут быть вписаны прямо туда, без отделения.
sys - системная информация о устройствах и частях самой FS. Очень маленький блок. Но потеря или даже легкое повреждение sys скорее всего не даст собрать массив. (Если вся FS на одном разделе - значение sys несколько снижается - не надо другие части искать). Потому крайне желательно иметь две копии если имеем дело с массивом. Даже нулевым. А повреждение metadata - тоже не сахар, но не смертельно в большинстве случаев - да и здоровые эти блоки. Несколько гиг на террабайтном разделе - запросто.

Аватара пользователя

Автор темы
rogoznik
Сообщения: 10066
Зарегистрирован: 27 июн 2017, 13:36
Решено: 129
Откуда: Нижний Тагил
Благодарил (а): 777 раз
Поблагодарили: 1962 раза
Контактная информация:

Объединение дисков

#12

19 дек 2022, 20:43

slant писал(а):
19 дек 2022, 20:38
sys - это один из видов блоков данных на btrfs. Есть data, metadata, и sys
Понял. Ключ -sraid1 как раз и говорит что надо на блок sys сделать raid1
ИзображениеИзображение

Аватара пользователя

Автор темы
rogoznik
Сообщения: 10066
Зарегистрирован: 27 июн 2017, 13:36
Решено: 129
Откуда: Нижний Тагил
Благодарил (а): 777 раз
Поблагодарили: 1962 раза
Контактная информация:

Объединение дисков

#13

19 дек 2022, 20:44

В выходные займусь
ИзображениеИзображение

Аватара пользователя

Автор темы
rogoznik
Сообщения: 10066
Зарегистрирован: 27 июн 2017, 13:36
Решено: 129
Откуда: Нижний Тагил
Благодарил (а): 777 раз
Поблагодарили: 1962 раза
Контактная информация:

Объединение дисков

#14

24 дек 2022, 15:56

23.12 вечером все провернул
Правда был один нюанс
slant писал(а):
19 дек 2022, 20:01
4. btrfs balance start -draid0 -mraid0 -f /
5. btrfs balance start -sraid1 -f /
Эти две команды в таком виде не работают
Ошибка что неизвестный аргумент raid0 и raid1 соответственно
Поискав в сети и почитав документацию пришел к выводу что эти команды должны выглядеть вот так

Код: Выделить всё

4. btrfs balance start -dconvert=raid0 -mconvert=raid0 -f /
5. btrfs balance start -sconvert=raid1 -f /
ИзображениеИзображение

Аватара пользователя

slant
Сообщения: 4517
Зарегистрирован: 21 июн 2017, 18:09
Решено: 99
Благодарил (а): 51 раз
Поблагодарили: 1998 раз
Контактная информация:

Объединение дисков

#15

24 дек 2022, 17:05

Правильно. Это я по памяти писал, напутал с синтаксисом.

Ответить

Вернуться в «Общие вопросы по системе»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей