Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: wiki/Btrfs  (Прочитано 74868 раз)

0 Пользователей и 1 Гость просматривают эту тему.

nefelim4ag

  • Автор темы
  • Гость
wiki/Btrfs
« : 21 Ноября 2012, 16:55:23 »
Вопросы (по возможности сам и отвечу), обсуждение, пожелания, всё что касается статьи: btrfs
Ну и первое моё >_<, модераторы, я читал правила после создания, но сам исправить не могу, не хватает прав. Следуя правилам вики. Уберите из названия "использование_". - поправил
(Нажмите, чтобы показать/скрыть)

« Последнее редактирование: 25 Марта 2013, 08:48:04 от nefelim4ag »

Оффлайн Сперанский

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 4055
  • Dictum ac factum
    • Просмотр профиля
Re: wiki/Btrfs
« Ответ #1 : 21 Ноября 2012, 18:06:59 »
Ну и первое моё >_<, модераторы, я читал правила после создания, но сам исправить не могу, не хватает прав. Следуя правилам вики. Уберите из названия "использование_".
Так это легко: нажимаете "Редактировать статью" вырезаете все содержимое и сохраняете, она при этом автоматически удаляется, потом создаете новую с нужным вам названием и вставляете в нее вырезанное содержимое. Сам сейчас сделать этого не могу- страница заблокирована другим пользователем.

nefelim4ag

  • Автор темы
  • Гость
Re: wiki/Btrfs
« Ответ #2 : 21 Ноября 2012, 19:18:50 »
Ну и первое моё >_<, модераторы, я читал правила после создания, но сам исправить не могу, не хватает прав. Следуя правилам вики. Уберите из названия "использование_".
Так это легко: нажимаете "Редактировать статью" вырезаете все содержимое и сохраняете, она при этом автоматически удаляется, потом создаете новую с нужным вам названием и вставляете в нее вырезанное содержимое. Сам сейчас сделать этого не могу- страница заблокирована другим пользователем.
Спасибо, буду знать.
Пересоздал, исправил ссылку.

Оффлайн Antony3d

  • Любитель
  • *
  • Сообщений: 83
  • 12.04+GNOME Shell 3.4.1
    • Просмотр профиля
Re: wiki/Btrfs
« Ответ #3 : 22 Ноября 2012, 05:43:54 »
nefelim4ag, еще раз огромное спасибо за статью, поднятая тема очень актуальна!

Цитировать
sudo btrfs fi balance /home   #ждём, процесс долог и не обратимUPD: Немного почитав официальную документацию выяснил что команда пересоздаёт заново все метаданные, актуально для чистки и выравнивания старых разделов. Так же хорошо делать после дефрагментации, чтобы метаданные снова размечали не обрывки файлов, а только их начало.

Тоже пытался читать официальный вики на английском, но так до конца и не допонял что делает данная операция. Она посмотрит сколько у меня реально используется inodes и уменьшит резервное место под них, отдаст свободное под данные? Как она решит сколько останется в резерве?

Насколько опасна операция, так понимаю что бэкап раздела обязателен перед ней?

Вот пример у меня:
>btrfs filesystem df /home

Data: total=14.01GB, used=2.34GB
System, DUP: total=8.00MB, used=4.00KB
System: total=4.00MB, used=0.00
Metadata, DUP: total=1.00GB, used=22.57MB
Metadata: total=8.00MB, used=0.00
Тут бтрфс говорит, что под метаданые занято 1.00GB, под данные 2.34GB итого = 3.34. Свободно 14.01
А что значит 'System: total', и 'Metadata: total'?

Весь раздел у меня 20GB: fdisk, mount
/dev/sda8       130045952   169105407    19529728   83  Linux
/dev/sda8 on /home type btrfs (rw,subvol=@home)
А куда пропали (20-3.34)-14.01=2,65 GB ?

Причем df -H говорит другое:
/dev/sda8        20G  2,6G   16G  15% /homeВ размерах и свободном месте я малость запутался... Сжатие пока не пробовал, и без него голова кругом ;)
« Последнее редактирование: 22 Ноября 2012, 05:46:18 от Antony3d »

nefelim4ag

  • Автор темы
  • Гость
Re: wiki/Btrfs
« Ответ #4 : 22 Ноября 2012, 08:57:01 »
Data: total=14.01GB, used=2.34GB 14 гигобайт размечено чанками (это области от 256 Мб с ними и работает файловая система)
На чанках занято 2,3 гигабайта
System, DUP: total=8.00MB, used=4.00KB
System: total=4.00MB, used=0.00
Metadata: total=8.00MB, used=0.00
Сам не до конца разобрался, где и что оно показывает.
Metadata, DUP: total=1.00GB, used=22.57MB
Сколько места в чанках имеется под мета данные 1 гиг и сколько занято 22 мб.

Операция balance безопасная, но я не знаю насколько она безопасная если устроить резкую перезагрузку.
Я уже писал что она просто пересоздаёт метаданные.
т.е. если у тебя файл на диске занимает одну ровную линию, но по каким либо причинам размечен в нескольких блоках (например блоки: начало, середина, конец), то при запуске balance он разметит его как один длинный блок данных, что уменьшит количество и размер блока мета данных файла.
Также она актуальна при подключении к файловой системе новых дисков, наверно для этого она и была сделана (чтобы создать копию метаданных).
Также она актуальна после трансформации ext* в btrfs, т.к. в ext намного больше метаданных.

моя df для примера:
timofey@Beplan:~$ btrfs filesystem df /
Data: total=13.01GB, used=12.45GB
System, DUP: total=32.00MB, used=4.00KB
System: total=4.00MB, used=0.00
Metadata, DUP: total=1.00GB, used=345.35MB
timofey@Beplan:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2       118G   14G  103G  12% /
udev            3.9G  4.0K  3.9G   1% /dev
tmpfs           3.9G  220K  3.9G   1% /tmp
tmpfs           1.6G  900K  1.6G   1% /run
none            5.0M  4.0K  5.0M   1% /run/lock
none            3.9G  1.2M  3.9G   1% /run/shm
none            100M   44K  100M   1% /run/user
tmpfs           3.9G  636K  3.9G   1% /var/log
tmpfs           3.9G     0  3.9G   0% /var/log/apt
tmpfs           3.9G     0  3.9G   0% /var/cache/apt/archives
/dev/sda2       118G   14G  103G  12% /home
/dev/sda1       1.9G  873M  952M  48% /boot
/dev/sda2       118G   14G  103G  12% /tmp/system
timofey@Beplan:~$ df -h /
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2       118G   14G  103G  12% /
timofey@Beplan:~$ df /
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda2      123034624 13766104 107809656  12% /
Система у меня размещена на sda2 (там находиться @, @home и папка со снапшотами).
Отдельно вынесен boot раздел.

UPD: Запустил балансировку, сделал горячую перезагрузку через Alt+SysRq+REISUB, всё без вопросов загрузилось, балансировка продолжилась после перезагрузки, бедный мой SSD.
« Последнее редактирование: 22 Ноября 2012, 10:36:28 от nefelim4ag »

Оффлайн Antony3d

  • Любитель
  • *
  • Сообщений: 83
  • 12.04+GNOME Shell 3.4.1
    • Просмотр профиля
Re: wiki/Btrfs
« Ответ #5 : 23 Ноября 2012, 02:03:56 »
Data: total=14.01GB, used=2.34GB 14 гигобайт размечено чанками (это области от 256 Мб с ними и работает файловая система)
На чанках занято 2,3 гигабайта
Странно тогда, почему 14, когда раздел то на 20, простой df показывает 20. Вот смотри. 14,01+1=15. Остаются еще 5 гигов. Они пока вообще не используются фс? Будут задействованы если что-то большое записать. (надо попробовать)

Чанк - это, я так понимаю, какая-то фиксированная величина? Чанками btrfs как раз выделяет место под данные? Под каждый чанк своя область метаданных для файлов в этом чанке? Если, скажем у меня один бооольшой (на 256 метров) файл попал в чанк, то для этого чанка область метаданных ведь нужна совсем маленькая, всего под одну иноду, в идеале. (это я так пытаюсь вопросами понять идеологию этой фс, в голове у меня пока несколько криво и слишком поверхностно, поэтому и вопросов столько ;))
Я тоже прочитал что размер блока >=256? А когда он может быть больше? Его как-то можно узнать? Он (размер) может быть динамический, например если у меня на разных устройствах в разных разделах расположенна одна файловая система? Я читал - http://en.wikipedia.org/wiki/Btrfs#Chunk_and_device_trees - но увы далеко не все понял.
Цитировать
System, DUP: total=8.00MB, used=4.00KB
System: total=4.00MB, used=0.00
Metadata: total=8.00MB, used=0.00
Сам не до конца разобрался, где и что оно показывает.
Интересно всё-таки что это такое, я пытался на официальной вики найти, не нашёл, ну да ладно это сейчас не самая важная загадка, фиг с ней пока.
Цитировать
Операция balance безопасная, но я не знаю насколько она безопасная если устроить резкую перезагрузку.
Я уже писал что она просто пересоздаёт метаданные.
Понятно, но REISUB - это не спортивно ;) надо еще обязательно проверить жёсткий ресет прям посреди операции. Понятно дело на тестовом, ненужном разделе ;)

Цитировать
т.е. если у тебя файл на диске занимает одну ровную линию, но по каким либо причинам размечен в нескольких блоках (например блоки: начало, середина, конец), то при запуске balance он разметит его как один длинный блок данных, что уменьшит количество и размер блока мета данных файла.
Сорри, не совсем я понял. Здесь под блоком ты имеешь ввиду то что у меня в голове, по старо-досовски, называлось раньше кластером?
Пусть это пустые 3 блока:
{ } { } { }Пусть {х} - это полностью занятый блок, а {.} - частично занятый данными, тогда если у нас такая картина - {.} {x} {.} то balance сделает так? {x} {x} { }Если да, тогда я не понимаю, как может возникнуть ситуация, когда самый первый блок файла был занят не полностью, а частично? Ведь фс может оперировать только блоками и если уж начинает писать данные в блок, то выбирает первый свободный и его занимает.
Если я не правильно понял, попробуй нарисовать и/или объяснить.

Цитировать
Также она актуальна при подключении к файловой системе новых дисков, наверно для этого она и была сделана (чтобы создать копию метаданных).
Также она актуальна после трансформации ext* в btrfs, т.к. в ext намного больше метаданных.
Это можно и в статью добавить, как note. Тут вот http://www.opennet.ru/tips/2710_btrfs_snapshot_clone_raid_mirror_defrag.shtml тоже читал подобное.

Цитировать
моя df для примера:
timofey@Beplan:~$ btrfs filesystem df /
Data: total=13.01GB, used=12.45GB
...
timofey@Beplan:~$ df -h /
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2       118G   14G  103G  12% /
...
Ну вот, тот же вопрос - btrfs fi df - показывает всего 13.01G, а простой df - 118G и доступных 103G. Бррр...

Цитировать
Система у меня размещена на sda2 (там находиться @, @home и папка со снапшотами).
Отдельно вынесен boot раздел.
У меня еще веселее ;)
▶ mount
/dev/sda7 on / type btrfs (rw,subvol=@)
/dev/sdb2 on /boot type ext4 (rw)
/dev/sda8 on /home type btrfs (rw,subvol=@home)
У меня еще все веселее ;(
Boot, вынужденно на другом винте (не ssd). Древняя мамка и биос AHCI контроллера (не обновляемый), не видит мой ssd на котором система. Следовательно единственная возможность загрузиться с него, это разместить boot с ядром на обычном винте. Когда грузится ядро, то ssd прекрасно определяется как sda и нормально уже с него остатки системы грузятся.
« Последнее редактирование: 23 Ноября 2012, 02:15:02 от Antony3d »

nefelim4ag

  • Автор темы
  • Гость
Re: wiki/Btrfs
« Ответ #6 : 23 Ноября 2012, 02:35:52 »
(Нажмите, чтобы показать/скрыть)
По поводу чанков, всё достаточно извращённо. Чанки это виртуальный диски с которыми работает ФС каждый из них имеет своё дерево данных, метаданных и эксцентов.
Сами чанки идут в случае с 1 разделом от супер ноды, т.е.
supernode
|
-------------------------------------
~~|~~~~~|~~~~~|~~~~~|~~~~~|
chunk1 chunk2 chunk3 chunk4 chunk5
~~~~~|~~~|~~~~~~~~~~~~~~~~~~~~~~
~~~~~video~~~~~~~~~~~~~~~~~~~~~~
Но если тут всё достаточно понятно, супернода имеет адреса чанков и мы просто спускаемся до нужного чанка и работает с данными в нём. video это просто большой файл, он его размазывает по чанкам.
(Нажмите, чтобы показать/скрыть)
.

Да, области не размеченные чанками не используются.
Чанками, btrfs выделяет место под всё, видимо в супер ноде и сабразделах проще разметить чанки, чем их содержимое, насколько я понимаю чанки это ветки дерева.
Размер чанка, как узнать не представляю если быть честным и не знаю по поводу динамического размера.
Как файловая система размечает большие файлы, не могу констатировать как факт, но судя по её работе разбивает по чанкам.
Если у тебя на разных устройствах расположена одна файловая система, можно организовать раид, что даст как минимум копию метаданных.
Кстати, с заполнением фс на 100% лучше не эксперементировать (от греха подальше, ибо я сомневаюсь что он сможет грамотно отреагировать на это и не повредить мета данные сабраздела, суперноды), т.к. стандартная df отображает неверную информацию о состоянии файловой системы (у меня кончилось место и при паре сотен мб свободных).

Не спортивно?) хохо, только что запустил баланс и перезапустил на просто B. Системный раздел, балансе продолжил работать после перезагрузки.

Отлично показал по стародедовски, может я тебя не правильно понял, но не так.
Файл может быть размечен как:
{a{b{c #закрывающих нет, у нам эксценты, abc это файл
После баланс, он будет размечен как:
{abc

Разница между просто df и btrfs df в том, что обычный показывает физическое состояние накопителя, а Btrfs показывает ситуацию с файловой системой. Видимо вы не поняли, обычная файловая система размечает сразу диск, btrfs размечает только нужный ей кусок и постепенно растёт. От супер ноды и 1-2х саб разделов (или их отсутствия, тогда в btrfs нет смысла), до кучи сабразделов со снапшотами и копиями метаданных и ещё большей кучей и путаницей данных.

(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 23 Ноября 2012, 02:51:00 от nefelim4ag »

Оффлайн xan

  • Любитель
  • *
  • Сообщений: 94
    • Просмотр профиля
Re: wiki/Btrfs
« Ответ #7 : 22 Марта 2013, 09:40:19 »
Как можно используя btrf создать разные диски с разными параметрами (под разные подробности) ?
не хочется LVM

nefelim4ag

  • Автор темы
  • Гость
Re: wiki/Btrfs
« Ответ #8 : 22 Марта 2013, 20:18:04 »
Как можно используя btrf создать разные диски с разными параметрами (под разные подробности) ?
не хочется LVM
Я не понял вопроса, в каком смысле разные параметры, под какие задачи?
Объясни что ты хочешь получить в итоге.
« Последнее редактирование: 22 Марта 2013, 21:09:29 от nefelim4ag »

Оффлайн xan

  • Любитель
  • *
  • Сообщений: 94
    • Просмотр профиля
Re: wiki/Btrfs
« Ответ #9 : 23 Марта 2013, 00:06:39 »
Как можно используя btrf создать разные диски с разными параметрами (под разные подробности) ?
не хочется LVM
Я не понял вопроса, в каком смысле разные параметры, под какие задачи?
Объясни что ты хочешь получить в итоге.
Сделал, я большой btrfs раздел для виртуалок и прочего барахла и  тут понял, что хочу ставить разные параметры для разных данных (сжатие, снимки,дедупликация и т.д.), а заодно я хочу гибко менять размер раздела если потребуется. Увеличивать или уменьшать...

Раньше такое решалось через LVM. но смутно помню, что мне он чем то не понравился... (при том что размер vl можно менять, но самой фс на этом нельзя?)
Btrfs как то мне может помочь ?  что предпочесть или гибрид сделать ?
« Последнее редактирование: 23 Марта 2013, 00:28:17 от xan »

nefelim4ag

  • Автор темы
  • Гость
Re: wiki/Btrfs
« Ответ #10 : 23 Марта 2013, 00:12:04 »
Сделал, я большой btrfs раздел для виртуалок и тут понял, что хочу ставить разные параметры для разных данных, а заодно я хочу гибко менять размер раздела если потребуется. Увеличивать или уменьшать...
Раньше такое решалось через LVM.
Размер раздела, проблем возникнуть не должно, данные занимают только начало, тот же gparted, спокойно изменит размер раздела, + есть
btrfs filesystem resize -2g /mnt Это уменьшит (на 2 гигобайта) размер раздела на диске подмонтированном в /mnt и аналогично должно наботать для подразделов (сам не пользовался, не приходилось, подробнее не скажу).
« Последнее редактирование: 23 Марта 2013, 00:14:55 от nefelim4ag »

Оффлайн Nikki1993

  • Заслуженный пользователь
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 3261
  • Owner of Dell XPS 13 Developer Edition :D
    • Просмотр профиля
Re: wiki/Btrfs
« Ответ #11 : 23 Марта 2013, 00:34:10 »
nefelim4ag,
С точки зрения обычного пользователя, без экзотических новшеств :) стоит ли использовать btrfs уже или пока остаться на ext4? Твое мнение?
First i was like :0 Then i was like :D But now i am like(╯°□°)╯︵ ┻━┻
http://www.abload.de/img/banner_505uxa.png

nefelim4ag

  • Автор темы
  • Гость
Re: wiki/Btrfs
« Ответ #12 : 23 Марта 2013, 01:01:25 »
(Нажмите, чтобы показать/скрыть)

Да, я считаю что обычным пользователям, даже не пользуясь всеми её ништяками (вроде снапшотов и сжатия), можно без вопросов её ставить и использовать, но вопрос о необходимости этого сугубо личный.
Я не понял твоего сообщения: "
nefelim4ag,
С точки зрения обычного пользователя, без экзотических новшеств :) стоит ли использовать btrfs уже или пока остаться на ext4? Твое мнение?
но надеюсь я дал всю необходимую тебе информацию.

Оффлайн xan

  • Любитель
  • *
  • Сообщений: 94
    • Просмотр профиля
Re: wiki/Btrfs
« Ответ #13 : 23 Марта 2013, 22:35:45 »
nefelim4ag, можно ли в btrfs перераспределять место между разделами или это только удел lvm ?
или может между подразделами(subvolumes). МОжно ли подразделам назначить свои параметры ?

nefelim4ag

  • Автор темы
  • Гость
Re: wiki/Btrfs
« Ответ #14 : 24 Марта 2013, 00:01:31 »
nefelim4ag, можно ли в btrfs перераспределять место между разделами или это только удел lvm ?
или может между подразделами(subvolumes). МОжно ли подразделам назначить свои параметры ?
Можно управлять размерами подрозделов, перераспределять место между физическими разделами - lvm.
btrfs, действует в пределах раздела и никакого отношения к управлению разделами с её стороны и речи быть не может.
(Нажмите, чтобы показать/скрыть)

Каждый подраздел можно монтировать с разными параметрами, даже при условии что они на одном физическом разделе.

Установка квот:
#Если нужно ограничить размер подраздела
sudo btrfs qgroup limit 100G <path>/<subvolume>
#Проверить использование места подразделами можно так
sudo btrfs qgroup show <path>
« Последнее редактирование: 24 Марта 2013, 13:37:37 от nefelim4ag »

 

Страница сгенерирована за 0.034 секунд. Запросов: 25.