Назад | Перейти на главную страницу

BTRFS с отдельными данными FS все еще полосатая?

ОБНОВИТЬ

Итак, после долгого изучения официальной документации я обнаружил, что btrfs выделяет пространство кусками по 1 Гб, и при использовании одиночного режима эти куски выделяются на диске с наиболее незанятым пространством в настоящее время. Поэтому данные распределяются между разными дисками, и, как я вижу, потеря одного диска приведет к полной потере файлов размером более 1 ГБ.

Я пришел к выводу, что единственное преимущество использования одиночного режима по сравнению с raid0 (также поддерживаемое btrfs) - это возможность использования дисков разного размера. Есть другие мысли?


Исходный пост

Поэтому я создал файловую систему btrfs, состоящую из 3 устройств с одиночным режимом данных, используя следующую команду:

sudo mkfs.btrfs -f -d single /dev/sdb7 /dev/sdb8 /dev/sdb9

Затем я подключил fs к папке nonRaid и создал файл размером 10 ГБ, используя

fallocate -l 10G nonRaid/example

Я понимаю, что разница между использованием raid0 и single заключается в том, что raid0 будет разделять данные на 3 устройства в моем случае, и в одном режиме данные не будут разбиты на полосы, а будут сохранены как целый фрагмент на диске, как это делает NTFS. Я правильно понимаю?

Если да, то как это объяснить при использовании

btrfs filesystem usage nonRaid/

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

Overall:
Device size:                  59.98GiB
Device allocated:             13.02GiB
Device unallocated:           46.96GiB
Device missing:                  0.00B
Used:                         10.05GiB
Free (estimated):             47.91GiB      (min: 24.43GiB)
Data ratio:                       1.00
Metadata ratio:                   2.00
Global reserve:               16.00MiB      (used: 0.00B)

Data,single: Size:11.01GiB, Used:10.05GiB
/dev/sdb7       3.01GiB  <---
/dev/sdb8       5.00GiB  <---
/dev/sdb9       3.00GiB  <---

Данные 10G разделяются между 3 устройствами, но не так равномерно, как при использовании raid0. Btrfs не поддерживает режим, при котором все диски заполняются целиком? Потому что эта чередование все равно будет означать, что если / dev / sdb8 выйдет из строя, все мои данные всей файловой системы исчезнут - верно?

Я знаю, что это немного старый вопрос, хотя я нашел его во время исследования того же трека. В списке рассылки btrfs-kernel есть довольно подробное объяснение от Хьюго Миллса (https://www.mail-archive.com/linux-btrfs@vger.kernel.org/msg44523.html).

tl; dr; btrfs хранит файлы блоками по 1 ГБ и распределяет их поровну по доступному свободному пространству на каждом диске. Таким образом, «с устройствами одинакового размера первый 1 ГиБ будет размещен на первом устройстве, второй 1 ГиБ на втором устройстве и так далее».