LINUX.ORG.RU

BTRFS, добавить диск и сделать RAID0.

 , , ,


0

1

Привет, ЛОР. Прошу сильно тапками не бить, на btfs переехал 2 часа как, вопрос в следующем.

Дано: ArchLinux, установленный через archinstall скрипт на систему, у которой 2 идентичных железных SSD.

Первый использовался как основной при установке и имеет следующую конфигурацию:

Subvoulmes: Отсутствуют
Разделы:
/boot - 1G
/ - 50G
/home - весь остаток (850.1G)

Что хочется: Сделать для разделов / и /home RAID0 на второй диск (сейчас он вообще голый, сносил все через nvme format).

Подскажите, пожалуйста, как правильно достичь желаемого?

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

Возможно может помочь @intelfx

★★★★★
Ответ на: комментарий от token_polyak

Я немного зеленый, в том плане, как форматировать второй диск, чтобы скопировать таблицу разделов с первого диска? Мне ведь по сути надо 2 раздела перетащить, / и /home

Jefail ★★★★★
() автор топика
Ответ на: комментарий от Jefail

Я бы сделал с помощью parted, но она самую малость замысловата и без опыта можно не справиться. Поэтому рекомендую гуй - GParted или KDE Partition Manager. Создать на новом диске разделы одинакового размера, если хочется крохобороться, можно до байта. Затем вышеуказанные манипуляции с утилитой btrfs для обоих разделов.

А вообще надо бы переделать в сабвольюмы одной и той же ФС.

token_polyak ★★★★★
()
Ответ на: комментарий от Jefail

А какой смысл впердоливать / в RAID0?

1. Прироста скорости ты не заметишь — «тяжелые» и временные файлы живут сугубо в /home.

2. Ты понимаешь что при выходе из строя 1 из дисков, система напрочь издохнет?

3. Монтирование двух разделов / в RAID1 и так удвоит его скорость чтения

hargard ★★★
()
Последнее исправление: hargard (всего исправлений: 1)
Ответ на: комментарий от Jefail

Всё в кучу… Форматирование и создание разделов - разные операции. Для btrfs разделы на первом диске и втором не обязательно должны быть одинаковые. Можешь хоть один диск разбить на 20 разделов, а другой на 50. И если всё добавить в одну файловую систему btrfs , то будет общий объём равен сумме этих разделов.

Можно и вовсе не делить на разделы.

А у тебя точно корень и home - разные фс?

NyXzOr ★★★★★
()
Ответ на: комментарий от hargard

париться с правами доступа

Если нужен доступ пользователю1 и пользователю2 к папке с фильмами, куда положить папку?

Миграция на btrfs (комментарий)

отслеживать заполненность тома

Что будет при переполнении? Браузер не в него ж будет писать свои кеши. Ну и командой df

NyXzOr ★★★★★
()
Последнее исправление: NyXzOr (всего исправлений: 1)
Ответ на: комментарий от NyXzOr

Если нужен доступ .. к папке с фильмами, куда положить папку?

Логично же — в /home/share/video или smb://share@home_server/video

hargard ★★★
()
Последнее исправление: hargard (всего исправлений: 1)

BTRFS, добавить диск и сделать RAID0

А когда один из дисков навернется, нарезать ЛОР кругами с воплями «Что делать».

Только RAID10 в таком случае.

LongLiveUbuntu ★★★★★
()
Ответ на: комментарий от LongLiveUbuntu

Все важные данные у меня на NAS, в котором Enterprise блин на 4ТБ, и который бэкапится каждую неделю на ещё один такой же (Synology). Система используется для разработки и тестирования докер контейнеров перед выкаткой их на основной сервер. По сути RAID0 собираю чтобы получить прирост в IO, поскольку целостность данных лежит на NAS, а на SSD ничего кроме ОС и дев тулзов нет.

Jefail ★★★★★
() автор топика
Ответ на: комментарий от hargard

64 стоит, найти такие же плашки сегодня уже невозможно, а второй диск остался, потому что ранее он был для хранения, а сейчас это упало на NAS.

Jefail ★★★★★
() автор топика

Чтобы подмонтировать корень с рейдом, понадобится initrd (все способы сделать это штатно ядрм без initrd не работают)
Чтобы подмонтировать рейд корня, в опции монтирования нужно добавить опцию device.
У меня это выглядит так:

mount -t btrfs -o device=/dev/sdb,discard,compress=zstd:8,noatime /dev/sda /mnt/raid

Соответствующие опции нужно будет прокинуть каким-то штатным способом в используемый РАЧем initrd - наверняка на ArchWiki уже упоминается, как это сделать.
Ну, а создаётся рейд что для корня, что для разделов с данными одинаково:
https://wiki.archlinux.org/title/Btrfs#Multi-device_file_system

mittorn ★★★★★
()
Последнее исправление: mittorn (всего исправлений: 1)
Ответ на: комментарий от mittorn

Возможно я что-то сделал не так, но у меня / и /home сейчас склеены как RAID0 и все, вроде бы, работает.

[vsulimov@workstation ~]$ sudo btrfs filesystem show /
Label: none  uuid: 18421825-1c6c-448f-b054-f2e891518078
        Total devices 2 FS bytes used 6.59GiB
        devid    1 size 50.00GiB used 5.52GiB path /dev/nvme0n1p2
        devid    2 size 50.00GiB used 5.50GiB path /dev/nvme1n1p1
[vsulimov@workstation ~]$ sudo btrfs filesystem show /home
Label: none  uuid: d0f93d27-7b17-47f3-bf47-7100581c48ec
        Total devices 2 FS bytes used 4.11GiB
        devid    1 size 880.51GiB used 8.02GiB path /dev/nvme0n1p3
        devid    2 size 881.51GiB used 6.00GiB path /dev/nvme1n1p2

Jefail ★★★★★
() автор топика
Ответ на: комментарий от NyXzOr

Создал в итоге почти идентичные по размеру разделы для home и идентичный для /.

Вот вывод

[vsulimov@workstation ~]$ sudo fdisk -l
Disk /dev/nvme0n1: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: Samsung SSD 980 PRO 1TB                 
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 7F728940-41AC-4E4A-ACAD-11067E5DDE55

Device             Start        End    Sectors   Size Type
/dev/nvme0n1p1      2048    2099199    2097152     1G EFI System
/dev/nvme0n1p2   2099200  106956799  104857600    50G Linux root (x86-64)
/dev/nvme0n1p3 106956800 1953521663 1846564864 880.5G Linux home


Disk /dev/nvme1n1: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: Samsung SSD 980 PRO 1TB                 
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xd221446f

Device         Boot     Start        End    Sectors   Size Id Type
/dev/nvme1n1p1           2048  104859647  104857600    50G 83 Linux
/dev/nvme1n1p2      104859648 1953525167 1848665520 881.5G 83 Linux

Jefail ★★★★★
() автор топика
Ответ на: комментарий от Jefail

А теперь сравни скорость записи:

fio --name=tmpfs-seq-write --filename=/tmp/fio-tmpfs \
    --rw=write --bs=1M --size=1G --numjobs=1 --ioengine=libaio \
    --direct=1 --group_reporting
и твой никудышний рейд:
fio --name=tmpfs-seq-write --filename=~/fio-raid\
    --rw=write --bs=1M --size=1G --numjobs=1 --ioengine=libaio \
    --direct=1 --group_reporting

Кусай локти, Толя

hargard ★★★
()
Ответ на: комментарий от hargard

Так я не спорю с тем, что tmpfs будет быстрее, это очевидно. У меня изначальный посыл в том, что с переездом на NAS появился свободный SSD, аналогичный основному, и я не вижу ему лучшего применения, чем склейка его в RAID 0 с основным.

Jefail ★★★★★
() автор топика
Ответ на: комментарий от NyXzOr

Для рута

[root@workstation ~]# btrfs de us / && btrfs fi df / && btrfs fi us / && btrfs su li /
/dev/nvme0n1p2, ID: 1
   Device size:            50.00GiB
   Device slack:              0.00B
   Data,RAID0/2:            5.00GiB
   Metadata,DUP:          512.00MiB
   System,DUP:             16.00MiB
   Unallocated:            44.48GiB

/dev/nvme1n1p1, ID: 2
   Device size:            50.00GiB
   Device slack:              0.00B
   Data,RAID0/2:            5.00GiB
   Metadata,DUP:          512.00MiB
   Unallocated:            44.50GiB

Data, RAID0: total=10.00GiB, used=6.13GiB
System, DUP: total=8.00MiB, used=16.00KiB
Metadata, DUP: total=512.00MiB, used=189.80MiB
GlobalReserve, single: total=16.27MiB, used=0.00B
Overall:
    Device size:                 100.00GiB
    Device allocated:             11.02GiB
    Device unallocated:           88.98GiB
    Device missing:                  0.00B
    Device slack:                    0.00B
    Used:                          6.50GiB
    Free (estimated):             92.85GiB      (min: 48.36GiB)
    Free (statfs, df):            92.85GiB
    Data ratio:                       1.00
    Metadata ratio:                   2.00
    Global reserve:               16.27MiB      (used: 0.00B)
    Multiple profiles:                  no

Data,RAID0: Size:10.00GiB, Used:6.13GiB (61.30%)
   /dev/nvme0n1p2          5.00GiB
   /dev/nvme1n1p1          5.00GiB

Metadata,DUP: Size:512.00MiB, Used:189.80MiB (37.07%)
   /dev/nvme0n1p2        512.00MiB
   /dev/nvme1n1p1        512.00MiB

System,DUP: Size:8.00MiB, Used:16.00KiB (0.20%)
   /dev/nvme0n1p2         16.00MiB

Unallocated:
   /dev/nvme0n1p2         44.48GiB
   /dev/nvme1n1p1         44.50GiB
ID 256 gen 12 top level 5 path var/lib/portables
ID 257 gen 12 top level 5 path var/lib/machines

Для home

[root@workstation ~]# btrfs de us /home && btrfs fi df /home && btrfs fi us /home && btrfs su li /home
/dev/nvme0n1p3, ID: 1
   Device size:           880.51GiB
   Device slack:              0.00B
   Data,RAID0/2:            3.00GiB
   Metadata,DUP:            2.00GiB
   System,DUP:             16.00MiB
   Unallocated:           875.50GiB

/dev/nvme1n1p2, ID: 2
   Device size:           881.51GiB
   Device slack:              0.00B
   Data,RAID0/2:            3.00GiB
   Unallocated:           878.51GiB

Data, RAID0: total=6.00GiB, used=1.33GiB
System, DUP: total=8.00MiB, used=16.00KiB
Metadata, DUP: total=1.00GiB, used=3.62MiB
GlobalReserve, single: total=5.50MiB, used=0.00B
Overall:
    Device size:                   1.72TiB
    Device allocated:              8.02GiB
    Device unallocated:            1.71TiB
    Device missing:                  0.00B
    Device slack:                    0.00B
    Used:                          1.34GiB
    Free (estimated):              1.72TiB      (min: 881.67GiB)
    Free (statfs, df):             1.72TiB
    Data ratio:                       1.00
    Metadata ratio:                   2.00
    Global reserve:                5.50MiB      (used: 0.00B)
    Multiple profiles:                  no

Data,RAID0: Size:6.00GiB, Used:1.33GiB (22.24%)
   /dev/nvme0n1p3          3.00GiB
   /dev/nvme1n1p2          3.00GiB

Metadata,DUP: Size:1.00GiB, Used:3.62MiB (0.35%)
   /dev/nvme0n1p3          2.00GiB

System,DUP: Size:8.00MiB, Used:16.00KiB (0.20%)
   /dev/nvme0n1p3         16.00MiB

Unallocated:
   /dev/nvme0n1p3        875.50GiB
   /dev/nvme1n1p2        878.51GiB
Jefail ★★★★★
() автор топика
Последнее исправление: Jefail (всего исправлений: 2)

Подскажите, пожалуйста, как правильно достичь желаемого?

Сразу стоит учесть, что для твоего юзкейса не стоит ждать какого-то ощутимого профита от raid 0 на nvme.

Я бы сделал так:

  1. На новом диске делаешь /boot раздел нужного тебе размера и один раздел под btrfs.

  2. На btrfs делаешь два сабволума, под / и под /home.

  3. Переносишь систему на них. Грузишься в новую систему.

  4. На старом диске делаешь аналогичную структуру разделов. Раздел под btrfs монтируешь как рейд 0 к новому. Можно сделать ребаланс.

Получаешь raid 0 с одним разделом на сабволумах, этим проще работать и эффективнее используется место.

altwazar ★★★★★
()
Ответ на: комментарий от altwazar

Я так и сделал, только без использования subvolumes. На первом диске сейчас boot - 1gb, root - 50gb, home - 800, на втором всё тоже самое, только без boot. Потом склеил их по официальной документации и сделал балансировку.

Jefail ★★★★★
() автор топика