Використовуємо "резервне" місце на ext3/ext4

Сьогодні напишу про дуже просту штуку, але я про неї не зразу згадав, тому можливо і вам буде цікаво.

Є маленький сервер, який використовується для резервного копіювання з допомогою Bacula. Для зберігання резервних копій у нього окремий розділ (515.4 GB) з ext4. Одного дня перестало вистачати місця для зберігання резервних копій протягом 30-днів, забракло якихось 20GB. Я вже заходився підключати новий диск, більший. Аж раптом згадав...

...що при створенні файлових систем ext3/ext4, по замовчуванню 5% резервується на випадок переповнення диску. Ці блоки доступні лише для користувача root, щоб він міг увійти на систему з переповненим диском. Це дуже завбачливо, але є кілька "але":

  • 5% це резонна величина для маленьких дисків/розділів, але для 1 TB - це 51 GB;

  • для успішного входу супер-користувача місце потрібно на / і /tmp, на інших розділах (/home, наприклад) цього не треба;

  • місце резервується для входу супер-користувача, але у більшості сучасних систем для входу використовується звичайний користувач, який потім підвищує свої привілеї, припускаю що резервування не допоможе зайти на таку систему, коли у неї переповниться диск

Тому, діючи дуже обережно, ми зменшимо кількість зарезервованих блоків або відключимо резервування, змінивши налаштування ФС.

Подивимось скільки ж ми "втрачаємо":

# tune2fs -l /dev/sdc5 | grep -i block
Block count:              125828608
Reserved block count:     6291430
Free blocks:              488281
... skip ...
Block size:               4096
... skip ...

Як бачимо, 6291430*4096=25.769.697.280 байт дискового простору "гуляє". Для зміни кількості зарезервованих блоків використовується та ж команда, тільки з опцією -m:

# tune2fs -m <скільки відсотків резервувати> /dev/sdb5

Щоб повністю відключити резервування вкажіть кількість відсотків - 0:

# tune2fs -m 0 /dev/sdс5
tune2fs 1.41.11 (14-Mar-2010)
Setting reserved blocks percentage to 0% (0 blocks)
# tune2fs -l /dev/sdc5 | grep -i block
Block count:              125828608
Reserved block count:     0
Free blocks:              6779711
... skip ...
Block size:               4096
... skip ...

"Звільнилася" купа місця :)

Увага! Зовсім не потрібно бігти відключати резервування на всіх-всіх-всіх розділах, при невисокій ціні на жорсткі диски, 5% не така висока ціна за додаткову надійність. Тому міняйте налаштування резервування блоків тільки тоді, коли точно знаєте що робите.

Я би просто полінувався міняти, але морока зі зміною розділів була більшою ;) Про LVM там теж вчасно не згадали :)


Mac OS X і зовнішній жорсткий диск

Задача: ефективно/зручно використовувати для резервного копіювання і зберігання всяких даних зовнішній жорсткий диск ємністю 1ТБайт у операційних системах Linux, Mac OS X і опціонально Windows.

Теоретична частина (вибір ФС для диску)

З чого будемо вибирати: рідна для Linux — Ext3, рідна для Mac OS X — HFS+, рідна для Windows — NTFS, на FAT не дивимось бо її обмеження у XXI-у столітті виглядають смішними.

. Ext3 - дуже симпатичний кандидат (OSS4ever!), але вимагає установки

милиць у інші ОС, як виявилося пізніше дуже кривих.

. HFS+ - Apple way, Джобз тріумфує (дай йому Бог здоров'я), для інших

ОС знадобляться додаткові танці, але я сподіваюсь Linux, як завжди, потішить, а на Windows нам начхати (зовсім необов'язково)

. NTFS - "обітєль зла", на Mac треба додатковий софт, на Linux хоч і

коробочний, але теж не дуже рідний. Єдиний незначний плюс - можливість запхати в чужий віндовий комп'ютер, але й це скоріше мінус, бо ще всяких "зловрєдів" налізе.

Добряче почухавши потилицю, вибираємо HFS+, подивимось як заведеться під Linux.

Практична частина (зберігаючи хронологію, але без матюків)

Диск був відформатований у Ext3, оскільки раніше я використовував виключно Linux (Ubuntu). На ньому накопичилась купка даних, які треба тимчасово перенести на Mac (більше ніде немає достатньо місця), попутно пробуємо варіант №1 з теоретичної частини.

Спроба № раз — macfuse і ext2fuse

Взагалі, способів установки ПЗ на Mac забагато; і .dmg, і .pkg, для OSS - macports, а віднедавна ще й AppStore. Я, як новачок, ще й досі гублюся... але для OSS вибрав один єдиний "православний" і "кошерний" спосіб — macports.

Вони ж (ports) мене і підвели, як ти їх не умовляй хоч через variants, хоч через macports.conf, все одно збирали модуль ядра тільки для архітектури i386.

Помордувавшись трохи, подумав, біс із ним, перезавантажив систему у 32-бітному режимі. І тут невдача, щось йому там "connection timed out", вирішив далі не розбиратись. Зніс ext2fuse і macfuse.

Спроба № два — Ext2fsx

Проект дохлий, не оновлюється з 2006-го, але знайшлася пара статей за 2010 «ставте все працює» — дзуськи! На Snow Leopard (10.6.7) воно не працює ні разу. Нічого дивного, йдемо далі.

Спроба № три — Paragon (Бог трійцю любить)

За рекомендацією приятеля ставлю комерційний Paragon ExtFS for Mac OS X, "тик-тик-тик", встановлено — працює. Ура!

Не душила б жаба заплатити $40 (але краще "Deore по кругу" для ровера, а якщо й до комп'ютера то Portal 2 ;)), використовував би на диску Ext3 і горя не знав, але ставлю 10-денну демо-версію, щоб тільки раз переписати файли з Ext3 на Mac.

Фініш

На цьому мої поневіряння закінчились, файли переписано, диск переформатовано у HFS+ (без журналювання). Linux побачив HFS+, хоч і без журналювання, зате «з коробки» на читання/запис, чим вкотре підтвердив свою позитивну репутацію «приспособлєнца».