BTRFS
- thunderamur
- Сообщения: 159
- Зарегистрирован: 27 окт 2012, 13:43
BTRFS
http://forum.ubuntu.ru/index.php?topic=269710.0
Сейчас поставил ROSA Fresh R6 на ноут с Intel Celeron N2830 (2x2.41 turbo Bay-Trail), это довольно слабый процессор, немного сильнее атомов, на смену которым он пришел. Также протестил загрузку с HDD. В случае с этим слабым конфигом загрузка ROSA с BTRFS без сжатия получилась 64 секунды до проигрывания мелодии входа в систему, со сжатием lzo 62 секунд. Т.е. без изменений в скорости загрузки, зато коффициент сжатия составил 0.57 (было 6.8 ГБ вместе с /home, стало 3.9 ГБ).
Исходя из этого можно с уверенностью сказать, что:
1 .Слабые нетбуки на старых атомах получат некоторое снижение производительности при использовании сжатия. Ноуты же с более мощными процессорами i3 и выше (и тем более ПК с мощными настольными процессорами) выиграют в производительности работы дисковой подсистемы.
2. BTRFS без сжатия быстрее EXT4. BTRFS со сжатием значильно быстрее EXT4 на мощных процессорах.
3. BTRFS со сжатием экономит дисковое пространство в 1.5-2 раза для системного раздела.
Товарищи, пробуйте использовать BTRFS и делитесь своими наблюдениями, похоже ФС все-таки доделали, а то несколько лет назад была печаль с производительностью. Только не забудьте поставить ядро посвежее, для BTRFS регулярно вносятся улучшения в ядро.
Re: BTRFS
Linus Torvalds
Re: BTRFS
Второй год уже использую. Причём Роса автоматом устанавливает BTRFS при инсталляции.thunderamur писал(а): Товарищи, пробуйте использовать BTRFS и делитесь своими наблюдениями, похоже ФС все-таки доделали, а то несколько лет назад была печаль с производительностью.
Перед тем как форматировать разделы по умолчанию для корневого стоит EXT4, а для home стоит btrfs.
Re: BTRFS
С 2015 года на SSD. При сжатии заметил незначительное падение производительности на AMD X8 FX-8350 4000MH. Загрузка при использовании сжатия длиться секунд 15, а без оного 10-12.
На нетбуке Samsung N127 (Atom) потеря производительности с лихвой компенсируется сжатием. В итоге, на 32 ГБ отведенных под систему, 34 ГБ занимают данные и 16 GB свободно.
Помимо прочего на домашнем сервере (увы, там Debian, нужно было свежее ядро, пропатченный Apache, и еще куча ПО, которого нет в RELS), помимо сжатия используется функции Raid-массива и субтомов.
Без снапшотов на десктопе я уже не могу. Несколько раз приходилось откатываться после неудачных пятничных обновлений. Три попытки протестировать KDE5 проходили в с специально созданном снапшоте.
Метаданных на одном физическом разделе под торрентами не так много отжирается. Но вот при использовании raid в связке -d 0 -m 1 может отожрать процентов 10 от размера тома. (Полдня проискал, куда за сутки делись 200 гигов: было 500 гигов свободно, 200 гигов было загружено, осталось 100 гигов, BTRFS в dфеф Raid-0, metadata Raid-1)
Re: BTRFS
Еще в R5 сжатие и использование подтома можно было включить только вручую набрав в дополнительных опциях параметр compress=lzo,subvol=@RosaFreshans писал(а):Второй год уже использую. Причём Роса автоматом устанавливает BTRFS при инсталляции.thunderamur писал(а): Товарищи, пробуйте использовать BTRFS и делитесь своими наблюдениями, похоже ФС все-таки доделали, а то несколько лет назад была печаль с производительностью.
Перед тем как форматировать разделы по умолчанию для корневого стоит EXT4, а для home стоит btrfs.
Re: BTRFS
Тоже сейчас попробовал эту BTRFS и пришел практически к таким же результатам. У меня AMD X8 FX-8320 3500MH.Yamah писал(а):При сжатии заметил незначительное падение производительности на AMD X8 FX-8350 4000MH. Загрузка при использовании сжатия длиться секунд 15, а без оного 10-12.
К сожалению для меня эта ФС пока не пойдет (хотя она очень заманчива), и по банальной причине, эту ФС практически нечем прочитать из под Win-ды (а для меня это очень актуально)...
- thunderamur
- Сообщения: 159
- Зарегистрирован: 27 окт 2012, 13:43
Re: BTRFS
С каким ядром делали замеры? Это очень важно в случае BTRFS. На Ubuntu у меня было ядро 4.2, в РОСА 4.1.
Re: BTRFS
У меняthunderamur писал(а):Yamah, Xakep
С каким ядром делали замеры? Это очень важно в случае BTRFS. На Ubuntu у меня было ядро 4.2, в РОСА 4.1.
Код: Выделить всё
$ uname -r
4.2.6-nrj-desktop-1rosa-x86_64
Re: BTRFS
И такой вопрос - если два диска объединены и один сдох, всем данным кещельбере, или только тем что были на сдохшем?
Re: BTRFS
Не забудьте сравнить версию systemd.thunderamur писал(а):Yamah, Xakep
С каким ядром делали замеры? Это очень важно в случае BTRFS. На Ubuntu у меня было ядро 4.2, в РОСА 4.1.
Re: BTRFS
Если зеркальный рейд, то только той копии, что была на сдохшем. Если рейд другого типа, то там сложнее - на глаз не определишь, но однозначно - ситуация будет печальной.Vochatrak писал(а):Народ, а можно соединить в один пулл два харда, разного размера и с раной скоростью чтения\записи?
И такой вопрос - если два диска объединены и один сдох, всем данным кещельбере, или только тем что были на сдохшем?
Re: BTRFS
А их обязательно именно в ред масив соединять?Если зеркальный рейд,
Вроде можно просто смержить два раздела в один (в смысле без "шахматной записи")
Поправьте если я не прав.
Re: BTRFS
Re: BTRFS
3.19.*, 4.0.*, 4.1.*thunderamur писал(а):Yamah, Xakep
С каким ядром делали замеры? Это очень важно в случае BTRFS. На Ubuntu у меня было ядро 4.2, в РОСА 4.1.
Можно. Но лучше так не делать.Vochatrak писал(а):Народ, а можно соединить в один пулл два харда, разного размера и с раной скоростью чтения\записи?
И такой вопрос - если два диска объединены и один сдох, всем данным кещельбере, или только тем что были на сдохшем?
Зеркалиться или расширяться будут только те данные, что попадают в объем меньшего диска.
При выходе из строя одного из дисков, теоретически можно восстановить данные на втором штатными средствами BTRFS, при условии, что метаданные зеркалились.
Однако, если у вас был Raid-0, данные, которые попадали на оба диска, скорее всего будут потеряны.
По-моему, по умолчанию для одного раздела на нескольких дисках включается raid. Но какой уровень не помню.Vochatrak писал(а):А их обязательно именно в ред масив соединять?Если зеркальный рейд,
Вроде можно просто смержить два раздела в один (в смысле без "шахматной записи")
Поправьте если я не прав.
Искать нужно инфу по балансировке.
Re: BTRFS
A Btrfs filesystem can be created on top of many devices, and more devices can be added after the FS has been created.
By default, metadata will be mirrored across two devices and data will be striped across all of the devices present.
Файловая система Btrfs может быть создана поверх многих устройств, и диски могут быть добавлены после того, как Btrfs создана.
По умолчанию (??? — прим. мое) , метаданные будут зеркалированы между двумя устройствами, а данные расслоены (RAID0) между всеми присутствующими устройствами.
Код: Выделить всё
# Create a filesystem across four drives (metadata mirrored, linear data allocation)
# Создать ФС на 4х приводах (метаданные заркалированы, данные расположены линейно, т.е. нет RAID)
mkfs.btrfs /dev/sdb /dev/sdc /dev/sdd /dev/sde
# Stripe the data without mirroring
mkfs.btrfs -d raid0 /dev/sdb /dev/sdc
- thunderamur
- Сообщения: 159
- Зарегистрирован: 27 окт 2012, 13:43
Re: BTRFS
http://forum.ubuntu.ru/index.php?topic=269699.0 (ссылки на тесты в конце 1-го поста)
Re: BTRFS
Не у кого нет .rpm-а готового?
Re: BTRFS
Re: BTRFS
Re: BTRFS
Любая работа с ПО, использующее СУБД будь-то BDB или SQLite просто зависает. Особенно печально это для URPMI.
На более-менее сильном железе BTRFS нет равных в Linux. Возможно еще будет ZFS хорошей, но пока реализация в Linux слабая.
Re: BTRFS
Re: BTRFS
Возможно, проблему с БД решает --nodesize, соответствующий по размеру страницам БД. По крайней мере, руководства по ZFS рекомендуют recordsize выбирать таким образом. Хотя на подобном слабом железе я никаких специальных настроек для оптимизации urpmi не делал, и проблем не замечено.Yamah писал(а):На ядрах 4.1.15 и выше с BTRFS с сжатием на слабом железе (Samsung N127) работать стало невозможно физически.
Любая работа с ПО, использующее СУБД будь-то BDB или SQLite просто зависает.
Re: BTRFS
У меня хомяк btrfs со сжатием. Показывает что свободно еще 5.6Gb. Начинаю копировать файлы, так оно мне пишет что нет свободного места.
Что за выкрутасы?
Re: BTRFS
Re: BTRFS
Ну, если нормальное, тогда ладно.На документацию ссылку не дам, но, если правильно помню, это "нормальное поведение".
А нельзя сделать что-бы он зарезервированное место не показывал свободным? А то так и до беды недалеко.
Re: BTRFS
Метаданные сжирают вероятнее всего.Vochatrak писал(а):Что за выкрутасы?
Код: Выделить всё
btrfs filesystem df /home
Re: BTRFS
Поискал FAQ https://btrfs.wiki.kernel.org/index.php ... k_space.21Vochatrak писал(а):А нельзя сделать что-бы он зарезервированное место не показывал свободным? А то так и до беды недалеко.
Если нет желания вникать во всё написанное, то приведу ключевую фразу: "We know this isn't ideal, and there are plans to improve the behavior.". То есть -- это в планах.
Свободное место, оно же для данных пользователя. То есть метаданные -- отдельно. Но судя по FAQ, метаданные действительно сжирают место, под них отведённое. А свободное ничем не занято, просто нет возможности его использовать.Yamah писал(а):Метаданные сжирают вероятнее всего.
Re: BTRFS
Код: Выделить всё
$ sudo fdisk -l /dev/sda
Disk /dev/sda: 119,2 GiB, 128035676160 bytes, 250069680 sectors
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: CEDDD136-5C0B-4385-AC60-3D532164C8E6
Устр-во Start Конец Size Тип
/dev/sda1 526336 231233535 110G Linux filesystem
/dev/sda2 2048 526335 256M EFI System
/dev/sda3 231233536 250069646 9G Linux swap
$ mount | grep /dev/sda1
/dev/sda1 on / type btrfs (rw,noatime,ssd,space_cache,subvolid=297,subvol=/@Rosa_Fresh)
/dev/sda1 on /mnt/Steam/SSD type btrfs (rw,noatime,ssd,space_cache,subvolid=259,subvol=/@Steam)
/dev/sda1 on /mnt/Zone/Home/SSD type btrfs (rw,noatime,ssd,space_cache,subvolid=258,subvol=/@Home)
/dev/sda1 on /mnt/Zone/System type btrfs (rw,noatime,ssd,space_cache,subvolid=5,subvol=/)
$ df -h /mnt/Zone/System
Файловая система Размер Использовано Дост Использовано% Cмонтировано в
/dev/sda1 111G 45G 64G 42% /mnt/Zone/System
$ sudo btrfs filesystem df /mnt/Zone/System
Data, single: total=59.01GiB, used=43.07GiB
System, single: total=4.00MiB, used=16.00KiB
Metadata, single: total=3.01GiB, used=1.31GiB
GlobalReserve, single: total=464.00MiB, used=0.00B
$ sudo btrfs filesystem show /mnt/Zone/System
Label: 'System' uuid: db2cb0bb-e9ad-4732-9c92-15cfce2358b8
Total devices 1 FS bytes used 44.39GiB
devid 1 size 110.01GiB used 62.02GiB path /dev/sda1
Там где есть RAID
Код: Выделить всё
$ sudo df /home/Profiles
Файловая система 1K-блоков Использовано Доступно Использовано% Cмонтировано в
/dev/sda1 1920157696 1604434944 313889608 84% /home/Profiles
$ sudo btrfs filesystem df /home/Profiles
Data, RAID0: total=267.44GB, used=261.47GB
Data: total=1.52TB, used=1.23TB
System, DUP: total=8.00MB, used=212.00KB
System: total=4.00MB, used=0.00
Metadata, RAID1: total=512.00MB, used=504.45MB
Metadata, DUP: total=2.62GB, used=2.01GB
Metadata: total=8.00MB, used=0.00
Re: BTRFS
Тут данные и метаданные пропорционально заполнены. Повезло.Yamah писал(а):Там где есть RAID
Код: Выделить всё
$ sudo df /home/Profiles Data: total=1.52TB, used=1.23TB Metadata, DUP: total=2.62GB, used=2.01GB
Бывает и так, что метаданные заполняются быстрее:
Что с этим делать -- вот в чём вопрос.if your device is large (>16GiB)
If the filesystem has allocated (but not used) all of the available space, and the metadata is close to full, then df can show lots of free space, but you may still get out of space errors because there isn't enough metadata available.
Re: BTRFS
btrfs filesystem df /home
что говорит?
Код: Выделить всё
# btrfs filesystem df /home
Data, single: total=79.01GiB, used=73.09GiB
System, DUP: total=32.00MiB, used=16.00KiB
Metadata, DUP: total=525.50MiB, used=283.69MiB
GlobalReserve, single: total=96.00MiB, used=0.00B
На всякий пожарный, прогнал btrfsck и btrfs scrub - все вроде в норме.
Кстати, все хотел спросить - а балансировку вообще стоит делать?
Re: BTRFS
"Если метаданные заполнены, но, согласно выводу btrs fi df, более 1Гб свободно, должна помочь частичная балансировка"If you have full up metadata, and more than 1 GiB of space free in data, as reported by btrfs fi df, then you should be able to free up some of the data allocation with a partial balance:Код: Выделить всё
# btrfs balance start /mountpoint -dlimit=3
Re: BTRFS
Потому и спрашивал:В FAQ, по ссылке, даже если слова английские не понятны, то команды должны быть знакомы:
Кстати, все хотел спросить - а балансировку вообще стоит делать?
Re: BTRFS
Кое-что исправлено в 4.4.8:r0g3r писал(а):Не скажу за всех, но btrfs со сжатием на CentOS 7 ломает ФС. Причём непредсказуемо. Может, конечно, на более свежих версиях ядер и утилит btrfs это исправлено, но просто имейте в виду.
Код: Выделить всё
Btrfs: fix file/data loss caused by fsync after rename and new inode
commit 56f23fdbb600e6087db7b009775b95ce07cc3195 upstream.
If we rename an inode A (be it a file or a directory), create a new
inode B with the old name of inode A and under the same parent directory,
fsync inode B and then power fail, at log tree replay time we end up
removing inode A completely. If inode A is a directory then all its files
are gone too.
-
- Сообщения: 71
- Зарегистрирован: 21 авг 2015, 13:45
- Откуда: Салават, Башкортостан, РФ
- Контактная информация:
Re: BTRFS
Сейчас один большой / "на всё про всё" под btrfs.
Как рекомендуете -- есть смысл выделять /home или ещё что-то в отдельные subvolumes?
Надо ли какие-то особые параметры монтирования кроме default?
Может быть определенные файлы или каталоги нуждаются в некоторых особых атрибутах?
Re: BTRFS
Есть. Хомяк всегда нужно держать на отдельном разделе/субволюме.Как рекомендуете -- есть смысл выделять /home или ещё что-то в отдельные subvolumes?
Ну, это уже по личным предпочтениям. Однако, рекомендую - поменять цифры на 0 0, еще не лишним будет добавить autodefrag и space_cache.Надо ли какие-то особые параметры монтирования кроме default?
Вот такое прописано у меня
Код: Выделить всё
/ btrfs nofail,relatime,compress=lzo,autodefrag,space_cache 0 0
Re: BTRFS
Да. И именно так. И никак иначе.Vochatrak писал(а): Хомяк всегда нужно держать на отдельном разделе/субволюме.
И нужно помнить, что Линукс — это не Винда. Переустановка системы может не помочь.
Если есть проблемы, то надо сначала создать другого пользователя и смотреть у него.
Если у него есть проблемы, то переустанавливать систему. Если у другого пользователя нет проблем, то чистить своего Хомяка — переустановка не поможет.
Re: BTRFS
Если есть возможность использовать комбинацию SSD+HDD, то лучшее ее использовать через aufs: на SSD только данные необходимые для загрузки профиля, все остальное на HDD.
Re: BTRFS
Если SDD маленького объёма, то я бы его использовал как виртуальную память.
Re: BTRFS
ZFS позволяет использовать накопитель в качестве кэша (похоже на ReadyBoost), имеется ввиду нечто подобное? Это можно реализовать для произвольных ФС?Алзим писал(а):Если SDD маленького объёма, то я бы его использовал как виртуальную память.
И на минуточку, отвлекёмся от страшилок:
Код: Выделить всё
9 Power_On_Hours -O--C- 100 100 000 - 28261
Это "медленные", "древние", "ненедёжные" и т.п. накопители.
https://www.linux-hardware.org/index.ph ... g=smartctl
На одном из двух возникла единственная ошибка записи — на 790й день. И то не ясно, по какой причине, условия эксплуатации бывают экстремальными.
-
- Сообщения: 71
- Зарегистрирован: 21 авг 2015, 13:45
- Откуда: Салават, Башкортостан, РФ
- Контактная информация:
Re: BTRFS
Для ZFS у меня оперативки не так много... а вот на BTRFS такое возможно ли? И как именно сделать?trs писал(а):ZFS позволяет использовать накопитель в качестве кэша (похоже на ReadyBoost), имеется ввиду нечто подобное? Это можно реализовать для произвольных ФС?
Re: BTRFS
Возможно ли использование твердотельного накопителя в качестве кеша на BtrFS, мне и самому интересно, я такой информации не нашел (но и не особо искал).
Re: BTRFS
Re: BTRFS
Это на мой взгляд очень удобно.
Во вторых, с помощью него можно установить предыдущий снапшот не выходя из системы а потом просто перезагрузиться чтоб снапшот вступил в силу.
Так же apt-btrfs-snapshot избавляет от лишних движений с монтированием. В общем и целом упрощает работу с снапшотами.
А ROSA Freeze в некоторых случаях абсолютно не подходит.
Например проверить новое ядро, графический драйвер и т.д. (там где нужна перезагрузка)
Re: BTRFS
Можно ведь и по расписанию снапшотить каждый день, такой сценарий больше подходит для данных пользователя, а не компонентов ОС.
Я было решил, что Вы это использовали — в таком случае было бы интересно узнать об опыте и нюансах, что выявлены на практике.
В git-репозитории настораживают даты обновления, несколько лет назад.
И по какой-то причине не интегрировано в систему, как, к примеру, в TrueOS: В РОСА при обновлении ядра предыдущее не удаляется и может быть выбрано в меню GRUB.
А вот при обновлении видеодрайверов, действительно, бывают проблемы. В таком случае рекомендуется зайти в терминал Alt+Ctrl+F2 и переустановить драйвер, запустив XFdrake. Насколько я понимаю, в случае с apt-btrfs-snapshot сценарий схож, лишь команда в консоли отличается?
Re: BTRFS
Абсолютно согласен.trs писал(а):Снимки ФС создаются с определённой целью.
В том то и дело, что для меня компоненты системы стоят на первом месте и в моём случае снапшотить по расписанию не логично и нецелесообразно.trs писал(а):Можно ведь и по расписанию снапшотить каждый день, такой сценарий больше подходит для данных пользователя, а не компонентов ОС.
В настоящий момент принимаю решение о переходе на btrfs и в свете этого всесторонне изучаю данный вопрос. Возраст когда с шашкой на голо уже прошёл.trs писал(а):Я было решил, что Вы это использовали — в таком случае было бы интересно узнать об опыте и нюансах, что выявлены на практике.
Я знаю как вернуть в чувство систему после проблем с видеодрайвером. Да, сценарий схож, но телодвижений в разы меньше. А я вообще сторонник того, что если есть инструмент или возможность сделать что-то проще - то зачем усложнять.trs писал(а):А вот при обновлении видеодрайверов, действительно, бывают проблемы. В таком случае рекомендуется зайти в терминал Alt+Ctrl+F2 и переустановить драйвер, запустив XFdrake. Насколько я понимаю, в случае с apt-btrfs-snapshot сценарий схож, лишь команда в консоли отличается?
Re: BTRFS
Частично есть! Берете этот скрипт, исправляете пути до точки монтирования вашего корневого диска и пользуетесь. В тихом режиме делает снапшот подтома с корнем текущей ОС в каталог в корне ФС с именем подтома и суффиксом в виде текущей даты.Molchun писал(а):А есть ли в Роса инструмент подобный Убунтовскому apt-btrfs-snapshot ?
Скрипт для восстановления мне писать было влом.
В нормальное автоматическое восстановление изменением всех конфигов загрузки на другой снапшот я не верю. Тем более, что от этого снапшоты "портятся". Проще ручками из внешней ОС сделать снапшот с именем подтома с нужного снапшота.
-
- Сообщения: 71
- Зарегистрирован: 21 авг 2015, 13:45
- Откуда: Салават, Башкортостан, РФ
- Контактная информация:
Re: BTRFS
Как диски-то разбить правильно?
Задача исходно такая. Есть комп AMD 8 ядер/8GB/UEFI, только что умер HDD с Виндой, мир их праху обоим.
Есть два других HDD, с которыми некоторые нюансы.
Первый /dev/sda Hitachi 400GB в хорошем состоянии, но достаточно старая модель, и потому тормозной.
Второй /dev/sdb Seagate 500GB уже с бэдблоками, привит от "мухи ЦеЦе" -- пошустрее, но доверия ему поменьше.
Надо поставить ROSA Fresh Desktop KDE x86-64. Можно UEFI (никогда с ней не ставил, не факт что не глючит), можно просто Legacy BIOS.
Хочу весь первый винт /dev/sda отдать по максимуму под / и форматнуть в BTRFS.
На втором винте /dev/sdb выделить раздел того же размера, что и на первом, и сделать RAID1, типа вот так mkfs.btrfs -m raid1 -d raid1 /dev/sda1 /dev/sdb1
Включить lzo-компрессию, выделить subvolume для /home и возможно для / (есть смысл? снапшотить, например?)
При таком раскладе рассчитываю, как минимум, ускорить дисковую систему, а также не потерять данные при отказе любого из винтов.
Остаток второго HDD в сотню GB отдать под NTFS для образов виртуалок, в т.ч. с Виндой (нужна, блин), обмена данными с другими системами, ну и файликом swap сделать (на ноуте так работает).
Конкретно в BTRFS и UEFI/GPT я новичок, ибо не доверял/не ковырял их пока, в остальном -- нет, причем в обороте масса разных Linux-систем и девайсов.
Разбивать пробовал и в MBR, и в GPT.
Ставил РОСУ разбивкой и автоматом, и вручную. После автоустановки (всё работает, но понятно ext4 и один винт) имеющиеся разделы / и swap (который отдельно не нужен) сносил, объединял в один, форматировал командой выше (имена разделов поправил канеш) в BTRFS RAID1, ставил РОСУ поверх снова -- вроде всё прокатывает, но или GRUB не кажет куда ставит, или не находит потом раздел для продолжения загрузки.
Оставлять / под ext4 и выделять BTRFS только для /home нет резона -- не ускоряется собственно система, и кроме /home у меня есть ценные файлы и скрипты, которые нежелательно терять (уводить из RAID1).
Подскажите, please, рабочую схему разбивки для установки вручную, чтоб оно таки завелось -- разделы, их типы и флаги, точки монтирования и примерные размеры.
Без рабочего компа (LiveCD + старенький ноут рядом) уже поднапрягает экспериментировать... и если такая схема жизнеспособна -- подробное howto/wiki многим будет полезно.
Re: BTRFS
Зеркалирование данных (RAID1) подразумевает снижение скорости при записи. И с какого диска будет происходить чтение (медленного или быстрого) — не ясно.Ansy писал(а):рассчитываю, как минимум, ускорить дисковую систему, а также не потерять данные при отказе любого из винтов.
Так можно создать небольшой раздел для /boot, на том диске, что больше по объёму.Ansy писал(а):Оставлять / под ext4 и выделять BTRFS только для /home нет резона
-
- Сообщения: 71
- Зарегистрирован: 21 авг 2015, 13:45
- Откуда: Салават, Башкортостан, РФ
- Контактная информация:
Re: BTRFS
При записи это понятно, ноtrs писал(а):Зеркалирование данных (RAID1) подразумевает снижение скорости при записи. И с какого диска будет происходить чтение (медленного или быстрого) — не ясно.Ansy писал(а):рассчитываю, как минимум, ускорить дисковую систему, а также не потерять данные при отказе любого из винтов.
- приоритет всё же на защите данных от выхода из строя одного из HDD, и
- критичное по времени чтение у меня происходит чаще (загрузка программ, кэша браузеров), причем в параллель много файлов сразу -- тут должно помочь.
Больший по объему HDDtrs писал(а):Так можно создать небольшой раздел для /boot, на том диске, что больше по объёму.Ansy писал(а):Оставлять / под ext4 и выделять BTRFS только для /home нет резона
- не так исходно надежен, как меньший по объёму, и
- /boot загружается редко (раз в неделю и реже), в отличие системы и программ -- готов потерпеть.
Re: BTRFS
-
- Сообщения: 71
- Зарегистрирован: 21 авг 2015, 13:45
- Откуда: Салават, Башкортостан, РФ
- Контактная информация:
Re: BTRFS
Однако, в автоматическом режиме UEFI-инсталлятор указывает точку монтирования этого раздела по-другому -- /boot/efitrs писал(а):Раздел /boot в ext4 (либо fat для uefi) нужен для установки на него GRUB и ядра.
Это я попробовал уже. На чистом неразмеченном первом HDD, предварительно удалив gparted-ом все разделы, таблица была в GPT. Пока же констатируем -- в режиме UEFI/GPT загрузочный раздел должен быть FAT32 размером ~255МБ, с флагами boot,esp и монтироваться в /boot/efi
Попробую удалить остальные разделы и создать на их месте общий BTRFS с монтированием в / пока без RAID и subvolumes.
Для истории и сравнения -- скорости доступа к HDD:
А это в ноутбуке старом винт 5400rpm -- ну не позор ли так сливать ноуту?# hdparm -tT /dev/sd[ab]
/dev/sda:
Timing cached reads: 9490 MB in 2.00 seconds = 4750.82 MB/sec
Timing buffered disk reads: 196 MB in 3.01 seconds = 65.07 MB/sec
/dev/sdb:
Timing cached reads: 9532 MB in 2.00 seconds = 4771.36 MB/sec
Timing buffered disk reads: 322 MB in 3.00 seconds = 107.18 MB/sec
# hdparm -tT /dev/sda
Timing cached reads: 968 MB in 2.00 seconds = 484.92 MB/sec
Timing buffered disk reads: 134 MB in 3.00 seconds = 44.63 MB/sec
-
- Сообщения: 71
- Зарегистрирован: 21 авг 2015, 13:45
- Откуда: Салават, Башкортостан, РФ
- Контактная информация:
Re: BTRFS
Затем начал установку с ручной разбивкой, но там лишь назначил точки монтирования /boot/efi для имеющегося /dev/sda1 и / для созданного /dev/sda2 (который теперь btrfs с субтомом для хомяка).
Инсталлятор выдаёт такое предупреждение однако (поверх окно gparted с разбивкой наложил): Далее выбираю установку, сняв галку с форматирования /dev/sda2.
И в процессе установки, в окошке УЖЕ НЕТУ даже ВЫБОРА РАЗДЕЛА для начального загрузчика: Ну и на выходе ребутаемся, когда просят -- опаньки
Код: Выделить всё
GNU GRUB version 2.0
Minimal BASH-like line editing ...
grub> _
Re: BTRFS
Поскольку Вы сами пишете, что с UEFI ни разу не сталкивались, а MBR схема проще, я говорил о последнем варианте. Для UEFI может быть необходимо создать 2 раздела, /boot (ext4) и /boot/efi с параметрами что Вы сами нашли. У Вас же получается установить, когда корень не в BtrFS, а в ext4, и в этом случае каталог /boot как ни странно оказывается ext4. В /boot содержится ядро и компоненты GRUB, в частности btrfs.mod (необходим для чтения btrfs).Ansy писал(а):Однако, в автоматическом режиме UEFI-инсталлятор указывает точку монтирования этого раздела по-другому -- /boot/efitrs писал(а):Раздел /boot в ext4 (либо fat для uefi) нужен для установки на него GRUB и ядра.
-
- Сообщения: 71
- Зарегистрирован: 21 авг 2015, 13:45
- Откуда: Салават, Башкортостан, РФ
- Контактная информация:
Re: BTRFS
- Один из HDD /dev/sda очистил и gparted-ом создал таблицу разделов в MBR (было GPT). Но сами разделы не создавал!
- Запустил (это всё из LiveCD ROSA.FRESH.KDE.R8.x86-64.uefi) установку автоматом. Но когда предложили перезагрузиться -- НЕ СТАЛ этого делать!
- Зашел снова в gparted и убил все разделы кроме первого /dev/sda1 /boot (удаляем swap /dev/sda5, рутовый /dev/sda6, в т.ч. и содержащий их extended /dev/sda2).
- Создал на свободном месте новый основной раздел /dev/sda2 типа btrfs, отформатировал даже его под btrfs (не факт, что надо на этом этапе, но для будущего попробовал).
- Запустил заново инсталлятор. На этот раз в режиме использования существующих разделов.
- Точки монтирования указал первому /dev/sda1 -- /boot (который не трогал), новому второму btrfs-ному -- / (рут то бишь, для всей системы целиком). Субтома пока не пробовал создавать.
- Загрузчик GRUB2 очевидно указываем на MBR диска в целом (/dev/sda).
- Ставимся, перегружаемся -- взлетело!
Re: BTRFS
https://btrfs.wiki.kernel.org/index.php ... ConversionОбычная файловая система может быть отзеркалирована путем добавления нового устройства с последующей балансировкой.
Наример, что бы конвертировать существующий одиночный раздел /dev/sdb1 в RAID1 (для защиты от отказа одного из дисков):Код: Выделить всё
mount /dev/sdb1 /mnt btrfs device add /dev/sdc1 /mnt btrfs balance start -dconvert=raid1 -mconvert=raid1 /mnt
Как я понимаю, sdb1 из примера нужно заменить на sda2, а sdc1 на sdb2, предварительно разметив начало второго (бо́льшего по размеру) накопителя аналогично первому, а его остаток как угодно.
Re: BTRFS
У меня и MBR и UEFI работают с таблицей GPT.Ansy писал(а):Итак, мне удалась половина задачи.
Создавал в консоли. Предположим, наш диск будет /dev/sda
0. Вычищаем первые 16 МБ диска
Код: Выделить всё
dd if=/dev/zero of=dev/sdk bs=1M count=16
Код: Выделить всё
gdisk /dev/sda
1) Затем жмет кнопку "n" - это вызовет диалог создания нового раздела.
- Первым он запросит номер раздела. Можно согласится на по-умолчанию (жмем энтер), а можно ввести свой номер от 1 до 127 и нажать энтр.
- Потом он запросит начальный сектор. Выбираем по-умолчанию (жмем энтер).
- Потом он запросит последний сектор. Тут пишем "+2M", жмем энтер,
- Далее он спросит тип раздела. Выдаем ему "EF02".
2)Снова жмем n. И создаем раздел UEFI.
Первые два пункта по аналогии.
- Запрос конечного сектора. Отвечаем +32M (для одной Росы заглаза. Хватит еще штук пять Линуксов поставить.). Если еще и виндец будет жить, то ответить +100M
- Тип раздела EF00
3) Жмем n. Создаем раздел подкачки.
Конечный сектор +16GB (тут нужно использовать двойной размер от оперативы, чтобы нормально использовать гипернейт).
Тип раздела 8200
Если планируется BTRFS использовать без сжатия, то можно создать только его. Если планируется использовать сжатие, то нужен раздел boot.
4) создаем boot. жмем n
Конечный сектор +1GB (можно и 256M, но тогда без снапшотов придется жить)
Тип раздела по умолчанию.
5). Создаем корневой раздел. На все вопросы жмем по умолчанию, если больше разделов не будет, иначе выбрать нужный объем.
6) жмем "w" и соглашаемся применить изменения. Возможно потребуется перезагрузка.
2. Форматируем разделы
Допустим нумерация разделов была по умолчанию.
1). EFI
Код: Выделить всё
mkfs.vfat -n EFI_BOOT /dev/sda2
Код: Выделить всё
mkswap -L Swap /dev/sda3
Код: Выделить всё
mkfs.btrfs -L Boot -f /dev/sda4
Код: Выделить всё
mkfs.btrfs -L "Linux" -f /dev/sda5
Код: Выделить всё
mount /dev/sda4 /media
btrfs subvolume create /media/@Rosa_Fresh_2014.1
umount /media
mount /dev/sda5 /media
btrfs subvolume create /media/@Rosa_Fresh_2014.1_KDE
umount /media
4. Установка
Запускается с образа с UEFI.
Все как обычно. Только для / жмется "экспертные настройки" (или что-то типа этого). В опциях монтирования дополнительно прописывается "compress=lzo,subvol=@Rosa_Fresh_2014.1_KDE", для boot аналогично: "subvol=@Rosa_Fresh_2014.1". Разделу с UEFI, достается точка монтирования /boot/efi
-
- Сообщения: 71
- Зарегистрирован: 21 авг 2015, 13:45
- Откуда: Салават, Башкортостан, РФ
- Контактная информация:
Re: BTRFS
На самой BTRFS делать swap проблематично, насколько нагуглил -- по разным архитектурным причинам, не суть.
Отдельный раздел под swap отводить я тоже не люблю -- он мало используется постоянно, хотя ИНОГДА, ОЧЕНЬ РЕДКО туда что-то влезает от больших процессов, чтобы не упасть всей системе.
Насчет гибернации так вообще пока не в курсе, куда и как в Линуксе она делается, не надобилось пока (вот думаю, что ж ноут не гибернуется? А у него swap файлом на подмонтированном виндовом NTFS...)
Но! У нас же /boot же не всегда работает, а только при загрузке? Как и /boot/EFI впрочем.
И форматирование у них простейшее -- FAT или EXT2/3 (разве BTRFS тут имеет какие-то преимущества?)
Так можно ли один из этих разделов создать заведомо побольше, и разместить там swap не разделом, а файлом?
Что мы теряем из функционала в таком случае? Зато при нужде можно убавить swap или вообще использовать это место для бэкапа или переноса файлов при манипуляциях с разделами.
Опять же, в продолжение -- что мешает нам для /boot скроить на двух HDD массив RAID0 (особо ценной инфы там же нет?) средствами mdadm -- это ускорит И загрузку, И swap?
А уж корень системы, хомяки и прочее -- как планировалось, в BTRFS и RAID1 на несколько HDD тоже средствами BTRFS.
Или я чего-то существенно важного не догоняю по дилетантству своему?
Re: BTRFS
С boot раздела на RAID0 запустить систему можно в случае если он аппаратный (хотя бы fake-raid), но к заметного ускорения это не даст, поскольку основной объём данных читается с корневого каталога.
Кстати, на ZFS можно создавать подкачку (в т.ч. со сжатием), по-видимому, в силу отсутствия таких архитектурных причин, как в BtrFS.
Re: BTRFS
Не совсем верно. Ядро будет балансировать нагрузку на своп-раздел. То есть, данные первого процесса будут свопиться на первый раздел, данные второго на второй.trs писал(а): 2 swap раздела на разных дисках должны работать подобно RAID0, если не ошибаюсь.
С boot раздела на RAID0 запустить систему можно в случае если он аппаратный (хотя бы fake-raid), но к заметного ускорения это не даст, поскольку основной объём данных читается с корневого каталога.
Кстати, на ZFS можно создавать подкачку (в т.ч. со сжатием), по-видимому, в силу отсутствия таких архитектурных причин, как в BtrFS.[/quote]
-
- Сообщения: 71
- Зарегистрирован: 21 авг 2015, 13:45
- Откуда: Салават, Башкортостан, РФ
- Контактная информация:
Re: BTRFS
Поскольку выпустили свежую сборку 8.1, и подвернулись выходные -- на свободный HDD рабочего компа, не мудрствуя лукаво, решил накатить всё до буквы по любезно вышеприведённой инструкции -- дабы и её проверить, и новый дистрибутив с другим ядром на своём железе протестировать, и кое-какие свои соображения уточнить на чистой системе.Yamah писал(а):У меня и MBR и UEFI работают с таблицей GPT.Ansy писал(а):Итак, мне удалась половина задачи.
Создавал в консоли. Предположим, наш диск будет /dev/sda
0. Вычищаем первые 16 МБ диска
...
Ну, в общем, взлетело оно нормуль. Вроде как живёт, драйвера на nVidia проприетарные подоткнулись, FF синхронизировался, с сеткой проблем не возникло (в одном из прошлых дистрибов драйвер сетевухи не работал). Можно ставить в качестве рабочей системы "на каждый день".
Проба здесь https://linux-hardware.org/index.php?probe=4bd17e4165
По инструкции установки. Понимаю, что она примерная, и специально не обкатывалась, но всё же, поскольку ПРАКТИЧЕСКИ рабочая -- может многим пригодиться в качестве пошагового HOWTO.
Поэтому было бы замечательно уточнить моменты с инсталлятором, которые походу недостаточно конкретизированы, и потому возможны косяки, которые у меня, в частности, фатально не убили инсталляцию, но таки вылезли.
При разбивке диска я выбирал сразу же последний вариант "Вручную", но там ничего не делал, собственно, с разбивкой -- только каталоги монтирования и опции. Вот тут, кажись, несколько засад случилось, на скриншоте ниже: Вероятно, мне следовало выбрать вариант "На уже готовые разделы" -- но, чесговоря, не помню, есть ли там выход на экспертные настройки, и не начнёт ли установщик излишнюю самодеятельность. В общем, вижу, что:
- /dev/sda1 с grub ругается на отсутствие файловой системы (возможно, и не проблема, с gpt не работал раньше вплотную, на mbr/msdos такого не встречал, но глаз мозолит).
- /dev/sda4 никуда не смонтировано. Может, пропустил сам -- надо в /boot? Инструкция "неразборчиво"... Не фатально пока, наверное можно позже накопать UUID, добавить в /etc/fstab, а контент /boot (без efi) скопировать в subvol, подмонтировав /dev/sda4 в /mnt например. Но я таки планирую повторить процедуру повторно, вчистую. Если есть поправки в инструкцию, прошу дополнить, пока тестируется.
- subvol для /dev/sda4 точно прописывал, однако без указания точки монтирования он наверное и не зацепился в /etc/fstab, и не сработал.
- Протестировать гибернацию (на swap место выделил).
- После подключения второго HDD закатать /home в зеркало добавлением устройства в BTRFS.
- И остаток места на втором HDD выделить под NTFS для параллельной Винды -- в VirtualBox, но на "железном" разделе -- для бэкапа, межплатформенного обмена и вытаскивания критичных данных, если BTRFS вдруг фатально откажет.
P.P.S. Гибернация тоже работает Но вот не нашёл менюшку, раздел "Завершения работы" или экранной кнопки/виджета для её запуска. Пришлось повесить на кнопку питания (действие "Спящий режим").
P.P.P.S. Вчистую форматнул все разделы, накатил систему уже с монтированием /dev/sda4 в /boot -- всё прошло идеально.
Ошибку /dev/sda1 тоже устранил -- форматнул раздельчик в ext2, ибо из-за мелкого размера он ни в FAT16, ни в FAT32 (через GParted) форматироваться не хотел.
Re: BTRFS
У меня по этой инструкции установлены на дюжине ПК Rosa Fresh (не считая ПК, где я вынужден был ставить Fedora, OpenSUSE, Debian) и на 5 флэшках MagOS. Я не ожидал, что нужно будет на форуме расписывать в деталях сам процесс установки. Это не для WIKI.
1. Первый раздел нужен для работы BIOS Legacy. Там не должно быть ФС. И устанавливать груб туда не надо. Так же не надо его монтировать.
2. Разумеется, раздел с меткой "Linux", должен быть смонтирован на /, а раздел с меткой "Boot" на /boot, а еще раздел с меткой "EFI_BOOT" на /boot/efi
3. Опция subvol естественно сработает только для прописанного в fstab раздела.
Я бы посоветовал использовать хотя бы fake-raid и AUFS. Во-первых, это повышает производительность системы, так как процессы записи на raid-btrfs жрут больше ресурсов, чем fake-raid и AUFS. Домашний каталог у меня как раз так и смонтирован: на объединенных в fake-raid-1 двух HDD на 2 GB и подтома на полтора GB на системном SSD. В итоге система грузится за 5 секунд до приглашения KDM от начала загрузки ядра и 5 секунд до рабочего стола с авторизации пользователя.
-
- Сообщения: 71
- Зарегистрирован: 21 авг 2015, 13:45
- Откуда: Салават, Башкортостан, РФ
- Контактная информация:
Re: BTRFS
Ну почему же не для Wiki... проблема-то с инструкцией была лишь в том, что процедура действий в ИНСТАЛЛЯТОРЕ указана лишь намеками -- а вариантов "прохождения квеста" там намного больше, и много есть где напутать. Если это разжевать более подробно (а то ещё и с парой скриншотов) -- была бы вполне рабочая HOWTO-шка для Wiki. Учитывая, что не так мало пользователей Linux ставят системы на далеко не новое оборудование, не с самыми надежными и скоростными винтами, не всегда одинаковых (для RAID-1) размеров. А преимущество перед Windows как раз получается внушительное.Yamah писал(а):Я не ожидал, что нужно будет на форуме расписывать в деталях сам процесс установки. Это не для WIKI.
То есть высвечивание ошибки, восклицательного знака gparted-ом считаем нормальной ситуацией? http://forum.rosalab.ru/download/file.p ... &mode=viewYamah писал(а):1. Первый раздел нужен для работы BIOS Legacy. Там не должно быть ФС. И устанавливать груб туда не надо. Так же не надо его монтировать.
Ну вот, я наверное забыл в монтирование добавить, поэтому всё остальные опции для этого раздела и не применились. Ладно, не фатально, поправил руками потом.Yamah писал(а):3. Опция subvol естественно сработает только для прописанного в fstab раздела.
Если под fake-raid-1 подразумевается использование встроенного в материнку адаптера, то этот вариант не катит, ибо:Yamah писал(а):Я бы посоветовал использовать хотя бы fake-raid и AUFS. Во-первых, это повышает производительность системы, так как процессы записи на raid-btrfs жрут больше ресурсов, чем fake-raid и AUFS. Домашний каталог у меня как раз так и смонтирован: на объединенных в fake-raid-1 двух HDD на 2 GB и подтома на полтора GB на системном SSD. В итоге система грузится за 5 секунд до приглашения KDM от начала загрузки ядра и 5 секунд до рабочего стола с авторизации пользователя.
- Материнка может сдохнуть вместе с контроллером, что уже было пару раз на моей памяти, и от Винды оставались лишь незагружабельные винты с данными, безотносительно к RAID это потеря многих часов рабочего времени на восстановление рабочей среды.
- У меня нет ОДИНАКОВОЙ ЁМКОСТИ дисков для поднятия RAID-1 на железном/fake контроллере, равно как и нет желания терять доступное место на бОльшем из дисков. Это не сервер, это повседневная рабочая станция, и контора очень неохотно идёт на железячные апгрейды -- об SSD даже не мечтаем, пользуем то, что есть. Один винт надёжный, но маловат и медленноват, второй шустрый и вдвое больше, но из рассыпавшегося ранее RAID-а в сервере начального уровня, уже имеет наработку и некоторое количество стабильных бэдблоков в хвосте.
- Я могу накатить Linux на любую другую материнку взамен (если вдруг) сдохшей (в отличие от Windows) или даже поработать какое-то время с Live-носителя -- если будет возможность примонтировать ЛЮБОЙ из этой пары дисков с данными, BTRFS-RAID1 такое позволяет, в отличие от fake-raid.
- С потерей информации на бОльшем (быстром, но не столь надёжном) диске готов смириться, ибо останется "зеркало" на мелком/надёжном, а в "хвосте" пространства, оставленного от RAID-1, размещена NTFS для межплатформных экспериментов, (бэкапируемых в сеть) виртуалок (ибо основной BTRFS-RAID1 со сжатием, они этого не любят) и некритичного тяжелого контента (временные файлы, сливы данных с восстанавливаемых носителей, дистрибутивы, доступные из Сети, видеофайлы наблюдения и т.п.)
- Процессорная мощность -- дело последнее, ибо у меня конкретно камушек абсолютно некритичное место, как наверное и у большинства пользователей ПК. Обработка обмена с диском и сжатие абсолютно не напрягают.
P.S. Вот кстати еще один возможный косячок. Почему ДВОЙНОЕ монтирование рутового раздела /dev/sda5 при указанном ниже содержимом /etc/fstab ?
master@Black ~ $ mount | grep /dev/sd
/dev/sda5 on / type btrfs (rw,relatime,compress=lzo,space_cache,subvolid=257,subvol=/@Rosa_Fresh_2014.1_KDE)
/dev/sda4 on /boot type btrfs (rw,relatime,space_cache,subvolid=256,subvol=/@Rosa_Fresh_2014.1)
/dev/sda2 on /boot/efi type vfat (rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)
/dev/sda5 on /media/master/Linux type btrfs (rw,nosuid,nodev,relatime,compress=lzo,space_cache,subvolid=5,subvol=/)
/dev/sdb2 on /media/master/5C8138A75C4E07E7 type fuseblk (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other,blksize=4096)
master@Black ~ $ cat /etc/fstab
# /etc/fstab: static file system information.
# <file system> <mount point> <type> <options> <dump> <pass>
#Entry for /dev/sdb1 :
UUID=3b1a8616-586e-4475-8e92-756eb3c8d122 / btrfs compress=lzo,relatime,nofail,subvol=@Rosa_Fresh_2014.1_KDE 1 1
#Entry for /dev/sda4 :
UUID=e6a1254e-8e02-4c12-912d-065bfbb855d9 /boot btrfs subvol=@Rosa_Fresh_2014.1,relatime,nofail 1 2
#Entry for /dev/sda2 :
UUID=F046-A1EC /boot/efi vfat umask=0,nofail 0 0
#Entry for /dev/sdb2 :
UUID=5C8138A75C4E07E7 /media/master/5C8138A75C4E07E7 ntfs-3g defaults,nodev,nosuid,locale=ru_RU.UTF-8 0 0
none /proc proc defaults 0 0
#Entry for /dev/sda3 :
UUID=a368c915-f012-4a86-b570-7b8516125dc2 swap swap nofail 0 0
Re: BTRFS
Ansy писал(а):Ну почему же не для Wiki... проблема-то с инструкцией была лишь в том, что процедура действий в ИНСТАЛЛЯТОРЕ указана лишь намеками -- а вариантов "прохождения квеста" там намного больше, и много есть где напутать. Если это разжевать более подробно (а то ещё и с парой скриншотов) -- была бы вполне рабочая HOWTO-шка для Wiki.
Не для Wiki потому, что у меня не было желания делать викифицированную статью. Мой пост в помощь уже продвинутым юзерам, кто захотел словить еще больше вкусняшек от системы.
Естественно. Jн не видит никакой файловой системы. Значит пользователя надо предупредить, что там что-то не так.Ansy писал(а):То есть высвечивание ошибки, восклицательного знака gparted-ом считаем нормальной ситуацией? http://forum.rosalab.ru/download/file.p ... &mode=view
В 2014 году я спокойно перенс диски в Fake-Raid-1 с Asus Crosshair M2 (nForce), на Asus Crosshair V Formula-Z (AMD), контроллер на новой материнки их подхватил как родные автоматом. Я даже офигел от такого сервиса.Ansy писал(а):Если под fake-raid-1 подразумевается использование встроенного в материнку адаптера, то этот вариант не катит, ибо:
- Материнка может сдохнуть вместе с контроллером, что уже было пару раз на моей памяти, и от Винды оставались лишь незагружабельные винты с данными, безотносительно к RAID это потеря многих часов рабочего времени на восстановление рабочей среды.
Диски fake-raid-1 можно безболезненно читать и без raid-контроллера по одному. А вот писать на них не надо чтобы не сломать симметрию данных.Ansy писал(а):[*]Я могу накатить Linux на любую другую материнку взамен (если вдруг) сдохшей (в отличие от Windows) или даже поработать какое-то время с Live-носителя -- если будет возможность примонтировать ЛЮБОЙ из этой пары дисков с данными, BTRFS-RAID1 такое позволяет, в отличие от fake-raid.
При условиях, что умрет винт, а не винт+ФС. Я такое не так давно пережил - данные целые, а вот метаданные, журналы и блоки со структурой ФС накрылись медным тазом. Спасло только, что данные можно было восстановить (медленно и ни разу неинтерактивно на другой носитель) встроенным функционалом. Восстановление 1 Терабайта у меня заняло 4 суток. А вся проблема в том, что на диске помирал контроллер (а не бэдблоки появились), и из-за его глюков в каой-то момент ядро переписало область метаданных на нормальном диске. Fake-raid изначально бы пометил сбойный диск, и не допустил бы такой фейла ядра.Ansy писал(а):[*]С потерей информации на бОльшем (быстром, но не столь надёжном) диске готов смириться, ибо останется "зеркало" на мелком/надёжном, а в "хвосте" пространства, оставленного от RAID-1, размещена NTFS для межплатформных экспериментов, (бэкапируемых в сеть) виртуалок (ибо основной BTRFS-RAID1 со сжатием, они этого не любят) и некритичного тяжелого контента (временные файлы, сливы данных с восстанавливаемых носителей, дистрибутивы, доступные из Сети, видеофайлы наблюдения и т.п.)
И да, вы получите скорость работы медленного винта как на запись, так и на чтение. Ибо система будит читать сектора попеременно с разных дисков.
В вашем же случая я бы просто rsync-ом синхронизовывал данные при изменениях на одном диске. (Всего-то нужен скрипт, который будет создавать снапшоты на время синхронизации, монтировать из и синхронизировать со вторым диском, при наступления событий изменения на ФС.)
Ну это где как. На довольно загруженных машинах (СУБД, конвертация видео, 1С) - это может вызвать солидную потерю в производительности.Ansy писал(а):[*]Процессорная мощность -- дело последнее, ибо у меня конкретно камушек абсолютно некритичное место, как наверное и у большинства пользователей ПК. Обработка обмена с диском и сжатие абсолютно не напрягают.[/list]
Потому, что у вас разные подтома. А с учетом того, что второй раз у вас смонтировалось в /media//master, то я делаю вывод (а мог бы провести сеанс ясновидения ), что ваш логин master, а смонтировалось туда потому, что вы в дельфине кликнули по диску с системным подтомом.Ansy писал(а):P.S. Вот кстати еще один возможный косячок. Почему ДВОЙНОЕ монтирование рутового раздела /dev/sda5 при указанном ниже содержимом /etc/fstab ?
Монтировать подтома на одном разделе можно
Код: Выделить всё
mount | grep sdc3
/dev/sdc3 on / type btrfs (rw,noatime,compress=lzo,space_cache,subvolid=374,subvol=/@Rosa_Fresh_2014.1_KDE4)
/dev/sdc3 on /usr/local type btrfs (rw,noatime,compress=lzo,space_cache,subvolid=263,subvol=/Common/USR_Local)
/dev/sdc3 on /opt type btrfs (rw,noatime,compress=lzo,space_cache,subvolid=262,subvol=/Common/OPT)
cat /etc/fstab | grep subvol
UUID=d83f82e6-a28f-4c4b-aa5d-43bea81b8b12 / btrfs noatime,nofail,subvol=@Rosa_Fresh_2014.1_KDE4,compress=lzo 1 1
UUID=d83f82e6-a28f-4c4b-aa5d-43bea81b8b12 /opt btrfs noatime,nofail,subvol=Common/OPT,compress=lzo 1 1
UUID=d83f82e6-a28f-4c4b-aa5d-43bea81b8b12 /usr/local btrfs noatime,nofail,subvol=Common/USR_Local,compress=lzo 1 1
/dev/sda /home btrfs subvol=@Rosa_Fresh_Home,compress=lzo 1 1
/dev/sda /mnt/Zone/Home/Old btrfs subvol=Home,compress=lzo 1 1
/dev/sda /mnt/Zone/Home/Common btrfs subvol=@Common,compress=lzo 1 1
/dev/sda /mnt/Zone/Home/Cache btrfs subvol=@Cache,compress=lzo 1 1
-
- Сообщения: 71
- Зарегистрирован: 21 авг 2015, 13:45
- Откуда: Салават, Башкортостан, РФ
- Контактная информация:
Re: BTRFS
Ну вот, именно потому, что мне ПРИДЕТСЯ РАБОТАТЬ на одном из HDD деградировавшего массива какое-то время -- надо иметь возможность записи на него. А потом опять расширить в зеркало -- уже на тот HDD, что появится для замены -- и опять не факт, что даже похожего размера и скорости. Эдакое ползучее апгрейдо-зеркальное хранилище /home. Ну и до кучи, по возможности, загрузочное.Yamah писал(а):Диски fake-raid-1 можно безболезненно читать и без raid-контроллера по одному. А вот писать на них не надо чтобы не сломать симметрию данных.
Может быть я что-то не так понял в BTRFS с режимом RAID-1? Странно, хотя бы РАЗНЫЕ файлы оно должно при параллельном чтении тащить с РАЗНЫХ шпинделей... а это IMHO несколько шустрее, чем ждать прыжка головок + вращение до нужного сектора на ОДНОМ шпинделе. Или алгоритмы распараллеливания чтения RAID-1 в BTRFS настолько тупее, чем в mdadm/dmraid/fake-raid/hardware-raid ?Yamah писал(а):И да, вы получите скорость работы медленного винта как на запись, так и на чтение. Ибо система будит читать сектора попеременно с разных дисков.
Чесговоря, этот вопрос требует экспериментальной проверки. Чем измерить, не сильно навороченным? Результаты отдельно для шпинделей выдаёт hdparm -tT /dev/sd[ab], для файловой системы есть что-то сопоставимое алгоритмически? Да, у нас же ещё и сжатие в BTRFS -- но только на одном разделе, так что есть где сравнить.
Сеанс ясновидения канеш в точку Действительно, кликал и неоднократно, и оно где-то сохранилось. Ну, не напрягает, и надо в принципе практически постоянно -- лишь бы не глючило.Yamah писал(а):Потому, что у вас разные подтома. А с учетом того, что второй раз у вас смонтировалось в /media//master, то я делаю вывод (а мог бы провести сеанс ясновидения ), что ваш логин master, а смонтировалось туда потому, что вы в дельфине кликнули по диску с системным подтомом.Ansy писал(а):P.S. Вот кстати еще один возможный косячок. Почему ДВОЙНОЕ монтирование рутового раздела /dev/sda5 при указанном ниже содержимом /etc/fstab ?
Re: BTRFS
Во всех трех случаях чтение идет не по файлам, а по блокам диска. Это описывается ф спецификации уровня raid.Ansy писал(а):Может быть я что-то не так понял в BTRFS с режимом RAID-1? Странно, хотя бы РАЗНЫЕ файлы оно должно при параллельном чтении тащить с РАЗНЫХ шпинделей... а это IMHO несколько шустрее, чем ждать прыжка головок + вращение до нужного сектора на ОДНОМ шпинделе. Или алгоритмы распараллеливания чтения RAID-1 в BTRFS настолько тупее, чем в mdadm/dmraid/fake-raid/hardware-raid ?
dmraid - это механизм ядра Linux работать fake-raid.
dd - же. Записать на диск большой файл и считать его dd-шкой в /dev/null.Ansy писал(а):Чесговоря, этот вопрос требует экспериментальной проверки. Чем измерить, не сильно навороченным? Результаты отдельно для шпинделей выдаёт hdparm -tT /dev/sd[ab], для файловой системы есть что-то сопоставимое алгоритмически? Да, у нас же ещё и сжатие в BTRFS -- но только на одном разделе, так что есть где сравнить.
-
- Сообщения: 71
- Зарегистрирован: 21 авг 2015, 13:45
- Откуда: Салават, Башкортостан, РФ
- Контактная информация:
Re: BTRFS
Точно же! У dd в выводе есть средняя скорость передачи. Поехали:Yamah писал(а):Во всех трех случаях чтение идет не по файлам, а по блокам диска. Это описывается ф спецификации уровня raid.Ansy писал(а):Может быть я что-то не так понял в BTRFS с режимом RAID-1? Странно, хотя бы РАЗНЫЕ файлы оно должно при параллельном чтении тащить с РАЗНЫХ шпинделей... а это IMHO несколько шустрее, чем ждать прыжка головок + вращение до нужного сектора на ОДНОМ шпинделе. Или алгоритмы распараллеливания чтения RAID-1 в BTRFS настолько тупее, чем в mdadm/dmraid/fake-raid/hardware-raid ?
dmraid - это механизм ядра Linux работать fake-raid.
dd - же. Записать на диск большой файл и считать его dd-шкой в /dev/null.Ansy писал(а):Чесговоря, этот вопрос требует экспериментальной проверки. Чем измерить, не сильно навороченным? Результаты отдельно для шпинделей выдаёт hdparm -tT /dev/sd[ab], для файловой системы есть что-то сопоставимое алгоритмически? Да, у нас же ещё и сжатие в BTRFS -- но только на одном разделе, так что есть где сравнить.
master@Black ~ $ fdisk -l /dev/sd[ab]
Код: Выделить всё
Disk /dev/sda: 232,9 GiB, 250059350016 bytes, 488397168 sectors
Disklabel type: gpt
Device Start End Sectors Size Type
/dev/sda1 2048 6143 4096 2M BIOS boot
/dev/sda2 6144 210943 204800 100M EFI System
/dev/sda3 210944 33765375 33554432 16G Linux swap
/dev/sda4 33765376 35862527 2097152 1G Linux filesystem
/dev/sda5 35862528 488397134 452534607 215,8G Linux filesystem
Disk /dev/sdb: 464,3 GiB, 498571862528 bytes, 973773169 sectors
Disklabel type: dos
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 452536319 452534272 215,8G 83 Linux
/dev/sdb2 452536320 973773168 521236849 248,6G 7 HPFS/NTFS/exFAT
master@Black ~ $ df | grep -v tmp# Основной BTRFS RAID-1 из разделов /dev/sda5 и /dev/sdb1
/dev/sda5 on / type btrfs (rw,relatime,compress=lzo,space_cache,subvolid=257,subvol=/@Rosa_Fresh_2014.1_KDE)
# Загрузочный раздел BTRFS без сжатия, снапшотов пока нет, объем небольшой, файлы мелковаты
/dev/sda4 on /boot type btrfs (rw,relatime,space_cache,subvolid=256,subvol=/@Rosa_Fresh_2014.1)
# EFI boot
/dev/sda2 on /boot/efi type vfat (rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)
# Это "хвост" второго, шустрого, ну уже покоцанного HDD, сформатировано в NTFS для виртуалок и переноса данных
/dev/sdb2 on /media/master/5C8138A75C4E07E7 type fuseblk (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other,blksize=4096)
Код: Выделить всё
Файловая система Размер Использовано Дост Использовано% Cмонтировано в
/dev/sda5 216G 39G 177G 19% /
/dev/sda4 1,0G 104M 819M 12% /boot
/dev/sdb2 249G 18G 231G 8% /media/master/5C8138A75C4E07E7
Так что получается не самый медленный из возможных вариантов, чем я вполне доволен.master@Black ~ $ hdparm -tT /dev/sd[ab]
/dev/sda:
Timing cached reads: 8748 MB in 2.00 seconds = 4379.55 MB/sec
Timing buffered disk reads: 216 MB in 3.02 seconds = 71.48 MB/sec
# Это с блинов первого физического медленного надежного HDD
/dev/sdb:
Timing cached reads: 8876 MB in 2.00 seconds = 4443.13 MB/sec
Timing buffered disk reads: 312 MB in 3.02 seconds = 103.45 MB/sec
# Это с блинов второго винта пошустрее, но уже с бэд-блоками в хвосте
# Читаем с /boot-раздела, BTRFS без сжатия на первом медленном винте
Black boot # dd if=initrd-4.9.9-nrj-desktop-1rosa-x86_64_old.img of=/dev/null
скопирован 15482641 байт (15 MB), 0,242468 c, 63,9 MB/c
# -- скорость вполне ожидаемая
# читаем с хвоста второго шустрого диска
master@Black ~ $ dd if=/media/master/5C8138A75C4E07E7/AnotherBigFile.zip of=/dev/null
скопировано 1328961774 байта (1,3 GB), 20,8885 c, 63,6 MB/c
# -- учитывая NTFS и FUSE -- замедление ожидаемое, хотя винт и побыстрее
# Читаем с основного BTRFS RAID-1 со сжатием
master@Black ~ $ dd if=/home/master/BigFile.zip of=/dev/null
скопировано 5314224734 байта (5,3 GB), 51,2404 c, 104 MB/c
# -- а вот тут явно шустрее, чем с первого медленного HDD -- или сжатие, или поток с более быстрого шпинделя
-
- Сообщения: 71
- Зарегистрирован: 21 авг 2015, 13:45
- Откуда: Салават, Башкортостан, РФ
- Контактная информация:
Re: BTRFS
- Имеем 2 (два) HDD различной ёмкости.
- Надо один каталог повышенной надёжности (mirror на два HDD) -- для критичных данных -- проекты, архив личных фото, переписка, документы, явки-пароли и т.п.. + возможно сжатие на лету.
- Надо второй каталог НЕкритичной надежности -- объемные дистрибутивы, фильмы, временные бэкапы, прошивки -- что не так сложно нарыть в Инете заново, и сжимать их смысла не имеет кстати.
- Главное -- весь дисковый объем под эти два каталога должен прозрачно, динамически выделяться под файлы из общей системы хранения, ибо заранее неизвестно, сколько места надо под надёжную часть, а сколь оставить под трэш.
- При отказе одного из HDD файлы первого зеркалируемого каталога должны читаться, на содержимое второго чихать... хотя желательно канеш, чтоб уцелевшие файлы тоже прочлись.
Существует ли решение средствами BTRFS или хотя бы ZFS?
Ну, чтоб использовать subvolumes с необходимыми параметрами?
Re: BTRFS
Не могу перейти из снапшота в другой снапшот.
В нолевом томе есть 3 снапшота
Код: Выделить всё
btrfs subvolume list /
ID 267 gen 29075 top level 5 path snapshots/compil
ID 276 gen 28992 top level 5 path @do
ID 278 gen 28995 top level 5 path @courent
Вбиваю
Код: Выделить всё
btrfs subvolume set-default 278 /
Re: BTRFS
Код: Выделить всё
dracut -f
Код: Выделить всё
dracut -f -N
Re: BTRFS
Почему-то update-grub2, упорно вписывает rootflags=subvol.
Только в этот раз, почему-то использовался конфиг НЕ из того снапшота, в котором я находился.
Как бы заставить систему, генерить правильный grub.cfg?
Без указания субволюмов и полных путей относительно нулевого тома...
Re: BTRFS
А вообще я не мучаюсь. Снапшоты я меняю так:
Код: Выделить всё
btrfs subvolume snapshot $MainSubvolume $newSnapshot
btrfs subvolume delete $MainSubvolume
btrfs subvolume snapshot $otherSnapshot $MainSubvolume
Re: BTRFS
В mbr надо пологать.Так! Grub на отдельном разделе или в том же томе BTRFS?
Я изначально ставился в нолевой томм. Снапшот был в корне.
Теперь я перешел в снапшот и удалил систему из нолевого раздела.
В итоге, в нолевом томе лежит несколько снапшотов/субволюмов.
Переносится ли граб при снимке, я не знаю...
Re: BTRFS
Сейчас у вас минимальная часть GRUBа ищит свои модули и конфиги в корневом томе, где естественно их уже нет. Вам нужно переустановить grub.
Re: BTRFS
А как собственно установить Граб в субволюм?Вам нужно переустановить grub.
Установщик требует указать устройство.
Re: BTRFS
1. Грузимся с флешки с любым живым дистрибутивом Linux. Понятное дело, я рекомендую Rosa Fresh R9 или MagOS.
2. Монтируем разделы и необходимые каталоги и включаем подкачку
Код: Выделить всё
mount -o subvol=@Rosa_Fresh_2016.1 /dev/sda1 /media
mount -o bind /dev /media/dev
mount -o bind /sys /media/sys
mount -o bind /proc /media/proc
swapon /dev/sda2
Код: Выделить всё
chroot /media /bin/bash
Код: Выделить всё
grub2-install --no-floppy --root-directory=/ /dev/sda
Сделано.
Re: BTRFS
А если он сжат?Главное, чтобы подтом не был сжатым.
Re: BTRFS
А тогда /boot нужно выносить на отдельный раздел, который тоже нужно будет смонтировать в chroot-окружение до выполнения команды установки Grub.Vochatrak писал(а):А если он сжат?Главное, чтобы подтом не был сжатым.
Grub не умеет загружаться с сжатых томов. Зато умеет с подтомов.
Re: BTRFS
Главное, чтобы подтом не был сжатым.
Стоп, так все-таки ПОДтом или том не должны быть сжатыми?Grub не умеет загружаться с сжатых томов. Зато умеет с подтомов.
Re: BTRFS
Если /boot находится на BTRFS разделе или его части (поддтоме), то раздел, или его чать не должны быть сжатыми. GRUB не умеет работать (искать модули, конфиги и грузить ядра) с ждатым разделом BTRFSVochatrak писал(а):Главное, чтобы подтом не был сжатым.Стоп, так все-таки ПОДтом или том не должны быть сжатыми?Grub не умеет загружаться с сжатых томов. Зато умеет с подтомов.
Если же /boot вынесен на внешний раздел (а это как правило extX, где X от 2 до 4), то GRUB-у уже все равно что там будет на других разделах. Он работает с extX разделом, а какие разделы будут дальше - это уже проблемы ядра, с точки зрения GRUB2.
Re: BTRFS
Re: BTRFS
Если хотя бы один подтом монтируется с сжатием, это же сжатие включается и для остальных подтомов.trs писал(а):У BtrFS сжатие на уровне файлов. На одном разделе могут быть как сжатые, так и не сжатые. По ссылке notauser-а указано, как можно такого добиться. В случае нового диска, предполагаю, можно монтировать без compress=lzo, а задать сжатие для каталогов (кроме boot) при помощи chattr +c.
По крайней мере это верно последней точки монтирования на этом разделе.
Re: BTRFS
Re: BTRFS
Компания Red Hat приняла решение не выводить Btrfs в разряд полностью поддерживаемых в RHEL технологий и поддержка данной ФС будет прекращена в будущем значительном выпуске RHEL 8 - http://www.opennet.ru/opennews/art.shtml?num=46955
Re: BTRFS
На подобное решение и была дана ссылка http://forum.rosalab.ru/viewtopic.php?f ... 737#p87641Ansy писал(а):Так может быть прицельно лишь несколько GRUB-файлов или каталог НЕ сжимать, атрибутами? А остальное по умолчанию в LZO? Не прокатит?
Re: BTRFS
Включаю baloo, эта штука сильно нагружает хард и через непродолжительное время, хомяк уходит в ro.
Ну ладно, гружусь с лайва btrfck показывает ошибки, btrfsck --repair чинит систему и больше не показывает ошибок.
Запускаю baloo и все повторяется вновь.
В общем либо Балу несовместим с btrfs, либо моей разметке хана, но btrfsck этого не видит.
Как можно полностью проверить btrfs?
Re: BTRFS
baloo - а вот прямо сейчас я для Вас наделаю этих всяких индексов, а btrfs - да я и так уже устал(а), отстань. Файловая ситема дама капризная.
Применяемые Вами параметры btrfs позволят специалистам дать более развернутый ответ. Наверно.
Кстати, что там с загрузкой о которой Вы спрашивали?
Re: BTRFS
Код: Выделить всё
btrfs scrub start /dev/sda1
После чего смотрим
Код: Выделить всё
btrfs scrub status /dev/sda1
Re: BTRFS
Применяемые Вами параметры btrfs позволят специалистам дать более развернутый ответ. Наверно.
Код: Выделить всё
/home btrfs relatime,nofail,autodefrag,,compress=lzo,space_cache 0 0
Да пока ничего, собственно. Тут с глюками сначала разобраться бы надо...Кстати, что там с загрузкой о которой Вы спрашивали?
btrfs scrub start /dev/sda1
Код: Выделить всё
btrfs scrub status /dev/sdb5
scrub status for 5ac71128-6fc5-4373-a491-082ae0753da3
scrub started at Sun Sep 3 00:41:24 2017 and finished after 00:19:48
total bytes scrubbed: 72.94GiB with 0 errors
Все тесты (включая whdd) говорят что проблем нет. Откатился на ядро 4.9.х (раньше было 4.11.х), может там какие проблемы.
P.S. Кстати, а вообще нужно через btrfs property set врубать сжатие разделу, если в фстабе compress=lzo? Просто btrfs property get не показывает что сжатие включено
Re: BTRFS
Код: Выделить всё
cat /etc/fstab | grep opt
UUID=2a07d237-6fd5-4fb6-9a48-d7121c9fdb02 /opt btrfs subvol=OPT,compress=lzo 1 2
du -h /opt
<кусь>
58G /opt
df -h | grep opt
/dev/sdb2 101G 48G 52G 49% /opt
Re: BTRFS
Спасибо, вроде жмет.Проверить есть ли сжатие поможет утилиты du и df.
Меня все-таки мущает наличие btrfs property set compress=lzo. Если все работает и без нее, зачем она нужна?
Кстати, переустановил граб по Вашей инструкции, спасибо.
Только в нее стоит добавить, что нужно перед установкой граба выполнить:
Код: Выделить всё
btrfs subvolume set-default 0 /диск на котором корень
Re: BTRFS
А это точно есть? Хотелось бы увидеть пример использования.Vochatrak писал(а):Меня все-таки мущает наличие btrfs property set compress=lzo. Если все работает и без нее, зачем она нужна?
Код: Выделить всё
# btrfs property get /
ro=false
label=r0
Код: Выделить всё
# btrfs property set / compress lzo
ERROR: unknown property: compress
Re: BTRFS
А это точно есть? Хотелось бы увидеть пример использования.
Код: Выделить всё
btrfs property get /home
ro=false
label=home
Код: Выделить всё
btrfs property set /home compression lzo
Код: Выделить всё
btrfs property get /home
ro=false
label=home
compression=lzo
Re: BTRFS
Хомяк ушел в RO, но...
Код: Выделить всё
btrfs property get /home
ro=false
label=home
compression=lzo
Иногда, после перезагрузки, btrfsck даже ошибок на томе не находит!
Что это вообще может быть?
Вот еще
Код: Выделить всё
# mount | grep /home
/dev/sdb5 on /home type btrfs (ro,relatime,compress=lzo,space_cache,autodefrag,subvolid=5,subvol=/)
Re: BTRFS
По поводу перевода подтома в режим "только чтение", а какая версия ядра? Всё же разработка BtrFS не завершена, исправления регулярно вносят.
Re: BTRFS
По поводу перевода подтома в режим "только чтение", а какая версия ядра?
Код: Выделить всё
4.11.12-nrj-desktop-1rosa-x86_64 #1 SMP PREEMPT Fri Jul 21 11:34:08 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
Re: BTRFS
После переустановки граба, столкнулся с такой фигней:
Делаю снапшот, перехожу в нтот снапшот btrfs subvolume set-default 295 /, перезагружаюсь и граб выводит rescue, со словами - "не найден какой-то кусок граба по пути /@courent/boot и.т.д." То есть он ищет часть себя по полному пути, относительно нулевого тома. Любой снапшот, который будет называться НЕ /@courent больше не загрузится.
Выручайте.