Недавно я обновил настольный сервер с двумя дисками (1 ТБ + 3 ТБ) до одного с дисками 1x1 ТБ и 3x3 ТБ. В процессе я установил btrfs и собрал вместе диски емкостью 3 ТБ, оставив диск емкостью 1 ТБ в качестве загрузочного тома.
Я преобразовал исходный диск 3 ТБ в файловую систему btrfs, используя:
sudo btrfs-convert /dev/sdb
, добавил два новых диска и перебалансировал всю файловую систему:
btrfs balance start -dconvert=raid1 -mconvert=raid1 /media/HD2
После повторной балансировки общий объем пространства, используемого каждым диском, отличается:
$ sudo btrfs fi show
Label: 'hd2' uuid: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Total devices 3 FS bytes used 2.51TiB
devid 1 size 2.73TiB used 1.89TiB path /dev/sdc1
devid 2 size 2.73TiB used 2.47TiB path /dev/sdb
devid 3 size 2.73TiB used 2.47TiB path /dev/sdd
и:
$ sudo btrfs fi df /media/HD2
Data, RAID1: total=2.51TiB, used=2.51TiB
System, RAID1: total=32.00MiB, used=500.00KiB
Metadata, RAID1: total=931.00GiB, used=4.44GiB
GlobalReserve, single: total=512.00MiB, used=0.00B
$
Это просто результат накопления битых секторов на устройстве №1?
Если посмотреть на цифры, это кажется логичным. Хотя я не являюсь экспертом в btrfs, поэтому, пожалуйста, отнеситесь к тому, что я предлагаю, как к объяснению с долей скептицизма.
btrfs вики есть объяснение, как работает свободное пространство в btrfs. Что ты видишь в btrfs fi show
пространство, выделенное для какой-то цели. Это не обязательно означает, что данных по /dev/sdc1
.
Если вы добавите использование (1,89 + 2,47 + 2,47), вы получите 3,415 ТиБ, что примерно соответствует выделенным регионам из btrfs fi df
(2,51 + 0,93 = 3,44 ТиБ). В настоящее время используется около 2,514 ТиБ. Если вы умножите это на 2 и разделите на 3 диска (2,514 * 2/3), вы получите около 1,67 ТиБ на диск. Это количество данных на каждом диске, если файловая система идеально сбалансирована, хотя вы, вероятно, не сможете этого добиться.
Теперь, поскольку BTRFS явно выделяет пространство большими блоками, у вас есть выделенное пространство (в метаданных), которое не используется. Если пространство метаданных фрагментировано (это может быть результатом баланса - перемещение только некоторых метаданных на новый диск), блоки не могут быть возвращены как нераспределенные (показано как free
в fi show
).
Если бы я хотел прояснить это, я бы попробовал запустить defrag
в файловой системе, а затем balance
очередной раз.
кстати Вы удалили подобъем резервной копии ext4 после преобразования? tbh Я понятия не имею, где это учитывается.