Краткая инструкция по установке Rosa на ssd и btrfs

Ответить
wolfeyes
Сообщения: 15
Зарегистрирован: 11 июл 2012, 13:47

Краткая инструкция по установке Rosa на ssd и btrfs

Сообщение wolfeyes » 09 дек 2014, 00:00

Первоисточник:
http://blog.kourim.net/installing-debia ... -subvolume

Захотел я поэкспериментировать со стареньким Asus EeePC 1015, ssd диском на 128 гб, btrfs, субразделами (subvolume) и снапшотами. Русскоязычной документации я не нашел, поэтому ниже краткая инструкция:

0. Устанавливаем в EeePc ssd диск, лишаясь гарантии.
Мне не страшно, т. к. я уже разобрал и собрал его много раз.

1. Запускаемся с livecd или флешки и делаем разметку с помощью gparted.
Размечал не штатным установщиком, т. к. начитался ужастиков по выравниванию разделов. Все сводится к тому, что первый раздел должен начинаться с 2048, а второй и следующие c сектора, кратного 8. Так же с помощью gparted удобно оставить для swap ровно столько гигабайт, сколько нужно. Подкачку многие не советуют хранить в файле на btrfs, поэтому я решил пожертвовать 4 гб и выделить отдельный раздел.

Моя разметка:
Корень на brtfs. (Home позже сделаем с помощью subvolume)
/dev/sda1 сектора 2048 — 226052095, 108 гб
Swap
/dev/sda2 сектора 226052096 — 234440703, 4 гб

2. Устанавливаем систему с помощью штатного установщика.
Там всё как обычно и по умолчанию.

3. После установки проверяем, что система работает и снова запускаемся с livecd. Время создавать субразделы (subvolume)
Открываем консоль и переходим с помощью su в root. Создаем в mnt папку, например btrfs:

Код: Выделить всё

mkdir /mnt/btrfs/
Монтируем туда наш корневой раздел:

Код: Выделить всё

mount /dev/sda1 /mnt/btrfs/
Далее создаем subvolume @ для корня и @home для /home. На самом деле можно назвать как угодно, но я решил сделать, как в англоязычной статье.

Код: Выделить всё

btrfs subvol create /mnt/btrfs/@
btrfs subvol create /mnt/btrfs/@home
Для нас это обычные папки. Конечно, это не совсем обычные папки, это субразделы, но операции с файлами такие же. Только удалять subvolume нужно с помощью команды btrfs subvolume delete SUBVOL

Команда для посмотра subvolume:

Код: Выделить всё

btrfs subvolume list /mnt/btrfs/
ID 281 gen 1229 top level 5 path @
ID 285 gen 1227 top level 5 path @home
Далее с помощью Midnight Commander или утилиты mv мы переносим содержимое /mnt/btrfs/home в /mnt/btrfs/@home, а /mnt/btrfs/ в /mnt/@
Внимание! Не переносите @ и @home в @. Но в @ должна быть пустая папка home (/mnt/btrfs/@/home)
Перенос может занять некоторе время, т. к. subvolume не просто папка, а совсем другой раздел и получается, как будто вы переносите данные с одного диска на другой.
Т.к. мы только что «грохнули» корневой раздел, то нам надо явно указать, что теперь нам надо загружатья не с корня, а с subvolume @. Вместо 281 подставьте свой ID субраздела @, скорей всего он будет другим.

Код: Выделить всё

btrfs subvolume set-default 281 /mnt/btrfs/
Потом надо добавить в /mnt/btrfs/@/etc/fstab строчку для монтирования @home в /home

Код: Выделить всё

/dev/sda1  /home  btrfs  discard,defaults,relatime,nodiratime,ssd,noatime,subvol=@home  0  0
Также я решил добавить в fstab следующие строки:

Код: Выделить всё

tmpfs /tmp tmpfs defaults 0 0
tmpfs /var/tmp tmpfs defaults 0 0
tmpfs /var/log tmpfs defaults 0 0
tmpfs /var/spool tmpfs defaults 0 0
Это позволяет хранить логи и прочие временные файлы в tmpfs, которая в свою очередь всё хранит в оперативной памяти. Таким образом нагрузка на ssd снизится. Также не забудьте перед перезагрузкой удалить содержимое этих папок в /mnt/btrfs/@.

4. Перезагружаемся в нашу систему. Если всё сделано правильно, то всё загрузится и заработает. Но это еще не всё. Надо переустановить grub и отказаться от default subvolume. Это не моя идея, так советуют умные люди ради того, чтобы при обновлениях и прочих действиях, когда выполнится команда grub2-update, ничего не поломалось. Grub2 умеет определять субразделы относительно корня, поэтому он найдет boot не в /boot, а в /@/boot. Это может показаться сложным для понимания, но на самом деле так надо для работы со снапшотами и воизбежание путаниц с путями к файлам.

Создаем папку для монтирования:

Код: Выделить всё

mkdir /mnt/btrtfs/
Монтируем корень файловой системы btrfs(не @, а самый верхний, который сожержит @ и @home). Он всегда имеет ID=5

Код: Выделить всё

mount -o subvolid=5 /dev/sda1 /mnt/btrfs/
И меняем default обратно:

Код: Выделить всё

btrfs subvolume set-default 5 /mnt/btrfs/
Теперь устанавливаем:

Код: Выделить всё

update-grub2 #переписывем конфиги
grub2-install /dev/sda #устанавливаем в загрузочный сектор
И самое главное, не забудем в /etc/fstab подправить строчку монтирования /

Код: Выделить всё

UUID=3942ea88-3677-42e5-9b65-38f74137b050 / btrfs discard,defaults,relatime,nodiratime,ssd,subvol=@ 1 1
5. Перезагружаемся и радуемся.

6. Теперь можно делать снапшоты на живой системе!!!
Желательно это делать не насилуя в данный момент файловую систему, например не устанавливая обновления. Из под root пишем:

Код: Выделить всё

mount /dev/sda1 /mnt/btrfs/
cd /mnt/btrfs/
btrfs subvolume snapshot @ @_backup
Готово! Мы моментально, в одну секунду, сделали снимок. Если объяснять на пальцах, то система не будет дублировать данные. Она создаст еще одну таблицу и будет следить за тем чтобы нигде ничего не потерялось. Если мы вдруг удалим файлы из @, то данные на диске останутся, т.к на них еще указывает таблица из @_backup. А если изменим /etc/hosts, то система сохранит два файла для @ и @_backup.

Теперь загрузим систему со снапшота @_backup. Для наглядности можно что-то удалить или установить. Подменим @ на @_backup:

На живой системе переименовываем subvolume @ в @_old:

Код: Выделить всё

mv @ @_old
А snapshot @_backup в @:

Код: Выделить всё

mv @_backup @
Перезагружаем систему и ВУАЛЯ. Мы видим то, что было во время снапшота. Timemashine отдыхает.

Чтоб вернуться обратно делаем все наоборот и перезагружаем систему.
Надо учесть, что снапшоты съедают место на диске и нам иногда придется удалять некоторые снапшоты. Просто удалять их нельзя, для этого есть специальная команда:

Код: Выделить всё

btrfs subvolume delete @_backup
О производительности.
Я не тестировал создание 100000000 файлов с одновременным копированием одного файла в 1000000 гб, но если судить по времени загрузки и отзывчивости интерфейса, то система работает намного быстрее чем на ext4 (и чем на hdd) и наверно чуть медленнее, чем на XFS. Система с LXDE загружается очень шустро!!! Если отключить запрос пароля в DM и 5 секунд загрузчика, то получается, что загрузка BIOS отнимает столько же, сколько и система. C KDE совсем другая ситуация. Очень много времени проходит со времени ввода пароля до загрузки рабочего стола. Пробовал множество настроек, но побороть не получилось. НО!!! Зато восстановление из гибернации происходит в считанные секунды. Я вынужден использовать KDE, т.к очень нужен Okular и быстрое подключение к внешним мониторам и проекторам

По сравнению с обычным диском работа от батареи несколько возросла, особенно, когда занимаешься чтением pdf или просмотром Интернета с большим содержанием текста.

Дополнительно для ssd:
Хорошая идея установить порог использования swap как можно меньше. Вставим строку vm.swappiness=5 в /etc/sysctl.conf (значения от 0 до 100) Это заставит систему использовать swap при крайней необходимости и меньше писать на диск.

Также я на рабочем столе сделал два sh скрипта с командами swapon и swapoff. Суть в том, что один включает раздел swap, другой выключает. Не уверен в особой нужде, это больше эксперименты с sudo.

Многие предлагают настраивать браузеры таким образом, чтобы они не хранили кеш и историю на диске, а только в оперативной памяти. Я без истории жить не могу, а вот отсутствие кеша я особо не заметил, хотя часто пользуюсь 2g/3g. Также я выключил flash и другие надстройки, чем уменьшил трафик и увеличил работу от АКБ, когда надо долго работать текстом на сайтах.

Спасибо за внимание.

Аватара пользователя
Yamah
Сообщения: 1348
Зарегистрирован: 04 май 2012, 06:30
Operating system: Десктоп (дом): Rosa Fresh R8.1, Rosa Fresh R10
Десктоп (работа): Rosa Fresh R8.1/Rosa Fresh R10
Сервер (работа): Rosa Enterprise Linux Sercver 6.7
Нетбук: Rosa Fresh R10
Контактная информация:

Re: Краткая инструкция по установке Rosa на ssd и btrfs

Сообщение Yamah » 09 дек 2014, 12:35

Русскоязычной документации я не нашел
Да, ну нах! :shock:
Раз, два, три, четыре... :wink:
Или про установку системы в подтома?
3. После установки проверяем, что система работает и снова запускаемся с livecd. Время создавать субразделы (subvolume)
Это можно сделать на этапе установки.
1. Ручками создаем подтома.

Код: Выделить всё

mount /dev/sda2 /media
btrfs subvolume create /media/Root
btrfs subvolume create /media/USR
...
btrfs subvolume set-default <Root-ID>
2. Запускаем штатный инсталлятор. Доходим до размещения на диске. Выбираем собственное размещение, переключаемся в режим эксперта, отмечаем нужный раздел (sda2 к примеру) как /, в его параметрах монтирования прописываем в дополнительных параметрах "subvol=Root,compress=lzo,ssd"

После установки можно опционально перенести usr, var..., на забыв подправить /etc/fstab

Однако, я не рекомендую держать систему и домашний каталог в пределах одного раздела.
Можно слегка не рассчитать и забить весь раздел под завязку. Система просто не будет грузиться, а безопасного порога, как в EXTx, я не нашел.
Желательно это делать не насилуя в данный момент файловую систему
CopyOnWrite это вполне позволяет. Но крайне не рекомендуется это делать, когда уже запущена другая утилита, которая заменят файлы в большом количестве и от целостности операции зависит дальнейшая работа приложения или всей системы. Нет, конечно, текущая система после снапшотинга работать будет. Но не факт, что система распакованная из снапшота будет работать, если снапшот сделали во время обновления системы.

wolfeyes
Сообщения: 15
Зарегистрирован: 11 июл 2012, 13:47

Re: Краткая инструкция по установке Rosa на ssd и btrfs

Сообщение wolfeyes » 09 дек 2014, 16:29

Yamah писал(а):Да, ну нах! :shock:
Раз, два, три, четыре... :wink:
Или про установку системы в подтома?
Эти все ссылки я видел, спасибо.
А вот информации про установку в подтома, подтома по умолчанию и главное, почему grub2 не запускает систему после grub2-update отыскать на русском языке не удалось. Правда кое-что обсуждается на forum.ubuntu.ru
Yamah писал(а):Однако, я не рекомендую держать систему и домашний каталог в пределах одного раздела.
Можно слегка не рассчитать и забить весь раздел под завязку. Система просто не будет грузиться, а безопасного порога, как в EXTx, я не нашел.

ssd забивать под завязку вообще плохая идея. Поэтому так или иначе надо следить за свободным местом.
Вот тут есть информация, как установить квоты, но я на себе не испытывал.
https://btrfs.wiki.kernel.org/index.php ... n_BTRFS.3F

А вот за совет с параметрами монтирования в штатном установщике "subvol=Root,compress=lzo,ssd" спасибо. При следующих опытах обязательно испытаю это на себе.

Dim
Сообщения: 326
Зарегистрирован: 09 июн 2014, 08:09
Operating system: ROSA Desktop Fresh R3

Re: Краткая инструкция по установке Rosa на ssd и btrfs

Сообщение Dim » 09 дек 2014, 17:23

А что со штатным ингалятором не так то? Тоже использую btrfs для корня и xfs для домашки, при том все это добро находится на шифрованном lvm томе. Размечал все в режиме эксперта и получились у меня разделы ровно тех размеров которые хотел. Или при размете именно на SSD он что то коцает?

БольшойКомпьютер
Сообщения: 120
Зарегистрирован: 01 апр 2014, 23:26
Operating system: ROSA Desktop Fresh R2 KDE x86-64 (десктоп)
ROSA Fresh R2 LXDE x86-64 (нетбук/ультрабук)

Re: Краткая инструкция по установке Rosa на ssd и btrfs

Сообщение БольшойКомпьютер » 09 дек 2014, 17:44

Начиная с R3:
Разделы теперь создаются с выравниванием по мегабайтам вместо цилиндров (оптимальнее при работе с SSD и современными HDD; отсутствие пустых участков между разделами). Начальное положение раздела также теперь задаётся мегабайтами вместо секторов.

Аватара пользователя
Yamah
Сообщения: 1348
Зарегистрирован: 04 май 2012, 06:30
Operating system: Десктоп (дом): Rosa Fresh R8.1, Rosa Fresh R10
Десктоп (работа): Rosa Fresh R8.1/Rosa Fresh R10
Сервер (работа): Rosa Enterprise Linux Sercver 6.7
Нетбук: Rosa Fresh R10
Контактная информация:

Re: Краткая инструкция по установке Rosa на ssd и btrfs

Сообщение Yamah » 09 дек 2014, 18:26

wolfeyes писал(а): Вот тут есть информация, как установить квоты, но я на себе не испытывал.
https://btrfs.wiki.kernel.org/index.php ... n_BTRFS.3F
Я не про квоты. Я про это
-m reserved-blocks-percentage
Specify the percentage of the filesystem blocks reserved for the super-user.
This avoids fragmentation, and allows root-owned daemons, such as syslogd(8),
to continue to function correctly after non-privileged processes are prevented
from writing to the filesystem. The default percentage is 5%.
wolfeyes писал(а):А вот за совет с параметрами монтирования в штатном установщике "subvol=Root,compress=lzo,ssd" спасибо. При следующих опытах обязательно испытаю это на себе.
Пожалуйста! :)
И еще при таких требованиях к SWAP, сам Swapлогичнее было бы разместить в файле на BTRFS разделе. Ссылки на эту тему есть.

Аватара пользователя
Shura
Сообщения: 258
Зарегистрирован: 14 янв 2013, 14:50
Operating system: Rosa 2013
Контактная информация:

Re: Краткая инструкция по установке Rosa на ssd и btrfs

Сообщение Shura » 10 дек 2014, 16:39

А не страшно на btrfs? У меня после нештатного выключения на ней файлы попортились, так потом восстановить ничем не мог, fsck просто падал с segmentation failed.
С тех пор её недолюбливаю
Linux home 3.6.10-nrj-desktop-1rosa #1 SMP PREEMPT Wed Dec 12 13:59:22 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

Аватара пользователя
Yamah
Сообщения: 1348
Зарегистрирован: 04 май 2012, 06:30
Operating system: Десктоп (дом): Rosa Fresh R8.1, Rosa Fresh R10
Десктоп (работа): Rosa Fresh R8.1/Rosa Fresh R10
Сервер (работа): Rosa Enterprise Linux Sercver 6.7
Нетбук: Rosa Fresh R10
Контактная информация:

Re: Краткая инструкция по установке Rosa на ssd

Сообщение Yamah » 10 дек 2014, 16:50

Shura писал(а):А не страшно на btrfs? У меня после нештатного выключения на ней файлы попортились, так потом восстановить ничем не мог, fsck просто падал с segmentation failed.
С тех пор её недолюбливаю
Два года, полет нормальный. Был баг в ядре с ней на рейд контроллерах.
У дочери на ПК только раз вылетела после того как по системному ногой продолжились. Но там только системный раздел пострадал.

Sent from my E39 using Forum Fiend v1.2.14.

Arbichev
Сообщения: 123
Зарегистрирован: 01 апр 2013, 09:55
Operating system: openSUSE 12.3 x86_64

Re: Краткая инструкция по установке Rosa на ssd и btrfs

Сообщение Arbichev » 28 янв 2015, 13:09

Господа!
Неоднократно встречал на форумах мнение, что при наличии SSD и большом размере ОЗУ (8 гигов и более) лучше работать вообще без SWAP. Что вы на это скажете?

Аватара пользователя
Barmalei
Сообщения: 4777
Зарегистрирован: 29 дек 2014, 15:45
Operating system: Intel Pentium 2020M / 6 Gb RAM / AMD GRadeon HD 8570 / Rosa Fresh R10 KDE 2016.1 x64

Re: Краткая инструкция по установке Rosa на ssd и btrfs

Сообщение Barmalei » 28 янв 2015, 13:14

Arbichev писал(а):Господа!
Неоднократно встречал на форумах мнение, что при наличии SSD и большом размере ОЗУ (8 гигов и более) лучше работать вообще без SWAP. Что вы на это скажете?
У меня с 4 гигами своп все время пустой. А без свопа Спящий режим не будет работать.

Arbichev
Сообщения: 123
Зарегистрирован: 01 апр 2013, 09:55
Operating system: openSUSE 12.3 x86_64

Re: Краткая инструкция по установке Rosa на ssd и btrfs

Сообщение Arbichev » 28 янв 2015, 16:33

То есть, если мне спящий режим не нужен, то...

Аватара пользователя
Barmalei
Сообщения: 4777
Зарегистрирован: 29 дек 2014, 15:45
Operating system: Intel Pentium 2020M / 6 Gb RAM / AMD GRadeon HD 8570 / Rosa Fresh R10 KDE 2016.1 x64

Re: Краткая инструкция по установке Rosa на ssd и btrfs

Сообщение Barmalei » 28 янв 2015, 16:46

Arbichev писал(а):То есть, если мне спящий режим не нужен, то...
Все зависит на сколько много вы программ одновременно будете запускать.

Аватара пользователя
Yamah
Сообщения: 1348
Зарегистрирован: 04 май 2012, 06:30
Operating system: Десктоп (дом): Rosa Fresh R8.1, Rosa Fresh R10
Десктоп (работа): Rosa Fresh R8.1/Rosa Fresh R10
Сервер (работа): Rosa Enterprise Linux Sercver 6.7
Нетбук: Rosa Fresh R10
Контактная информация:

Re: Краткая инструкция по установке Rosa на ssd и btrfs

Сообщение Yamah » 29 янв 2015, 14:17

Barmalei писал(а):
Arbichev писал(а):То есть, если мне спящий режим не нужен, то...
Все зависит на сколько много вы программ одновременно будете запускать.
И объем данных, которые будут в них обрабатывать.

У меня своп на 8 гигов (RAM тоже 8) заканчивает как только я начинаю в GIMP обрабатывать различными фильтрами картинку 100 000 х 10 000 пикселей

keleg
Сообщения: 5387
Зарегистрирован: 15 сен 2011, 01:58

Re: Краткая инструкция по установке Rosa на ssd и btrfs

Сообщение keleg » 29 янв 2015, 14:24

Да, оперативки не бывает много. У меня есть сервак с 192 гигами... но своп, на всякий случай, включен :-)

Ответить