Управління дисковим простором за допомогою lvm, система, ядро, утиліти, статті, бібліотека

Управління дисковим простором за допомогою LVM

У статті розповідається, як створити файловий сервер з використанням LVM (з RAID і без RAID). Розглянуто питання розширення дискового простору, заміни дисків, вибору файлової системи.






[Bryce Harrington і Kees Cook. Переклад: Сгибнев Михайло (www.dreamcatcher.ru)]

Управління дисковим простором за допомогою LVM

Переклад: Сгибнев Михайло

Linux Logical Volume Manager (LVM) є механізмом віртуалізації дисків. Він дозволяє створювати "віртуальні" дискові розділи на одному або декількох жорстких дисках, які в подальшому можна збільшувати, зменшувати або переміщати з диска на диск по вашим потребам. Також з'являється можливість подолати обмеження на розмір розділу, що накладається розміром жорсткого диска.

У цій статті спершу рассматріается файловий сервер початкового рівня, потім внесемо деякі зміни, додавши надмірність за допомогою RAID 1. Також розглянемо аспекти застосування LVM для домашніх користувачів.

установка LVM

Система LVM включає в себе компонент ядра, відповідаючий за файлову систему і призначені для користувача утиліти. Для включення компонента ядра, встановіть наступні опції:
Призначені для користувача утиліти встановлюються за допомогою системи пакунків дистрибутиву Linux. У Gentoo, утиліти LVM входять в сотав пакета lvm2. Зверніть увагу, що ви можете побачити пакет LVM-1 (друга його назва lvm-user). Можете встановити обидва пакети, але для роботи буде потрібно LVM-2.

основи LVM

Щоб використовувати LVM, вам необхідно зрозуміти кілька моментів. От є у вас жорсткі диски. Дисковий простір на цих пристроях нарубаю на розділи. Нарешті, файлова система записується поверх цих розділів. Для порівняння, в LVM, Volume Groups (VGs) розділені на логічні томи (LVs), де файлові системи, в кінцевому рахунку, і знаходяться (Рис. 1).

Кожен VG складений з пулу Фізичних Томів (PVs). Ви можете розширити (або зменшити), розмір Volume Groups додаючи або видаляючи так багато PVs, як вам буде завгодно, якщо є достатня кількість PVs для зберігання вмісту всіх виділених LVs. Поки є обсяг пам'яті, доступний в VG, ви можете збільшувати або скорочувати розмір ваших логічних томів (хоча більшість файлових систем не любить стискатися).

Приклад: простий файлової сервер

Простий приклад використання LVM - традиційний файловий сервер, на якому зберігаються резервні копії, медіа-файли і загальні файли для комп'ютерів кількох членів сім'ї. Гнучкість - ключова вимога; хто знає, які вимоги до обсягів дисків принесе Селдена рік?

Для прикладу, висунемо наступні вимоги до розділів:
В кінцевому рахунку, ці вимоги можуть збільшитися багаторазово за наступний рік або два, але сказати точно, який розділ і на скільки - не можна.

Традиційно, файловий сервер використовує диски SCSI, але сьогодні диски SATA пропонують привабливе співвідношення швидкості і низької ціни. На момент написання цієї статті, диски SATA на 250 Гбайт за вартістю приблизно рівні 100 $, таким чином, вартість одного терабайта складе близько 400 $.

Диски SATA імені не ATA класифікацією (hda, hdb), а SCSI (sda, sdb). Як тільки наша система завантажилася з підтримкою SATA, у нас з'явиться чотири готових до роботи фізичних пристрої:
Тепер підготуємо їх для роботи з LVM. Ви можете зробити це за допомогою fdisk, визначаючи "Linux LVM" як тип розділу 8e.

Створення віртуального томи

Тепер у вас є кілька зрозуміло названих логічних томів:

Вибір файлової системи

Тепер, коли пристрої створені, необхідно створити файлові системи, яких існує велика кількість. На чому зупинити свій палаючий погляд?

Типовими файловими системами настільних комп'ютерів є ext2 і ext3. Ext2 була стандартною, надійної робочим конем для Linux в минулі роки. Ext3 - модернізація ext2, що підтримує журнал і поліпшені механізми перевірки після збою. Збалансованість ext3 в плані продуктивності, надійності і швидкості відновлення робить її прекрасним вибором для систем загального призначення. Оскільки ext2 і ext3 були файловими системами, використовуваними за замовчуванням, протягом довгого часу, то ext3 буде хорошим вибором, якщо ви хочете отримати більшу надійність. Для того, щоб зберігати резервні копії, надійність набагато важливіша ніж швидкість. Головним недоліком ext2 / ext3 є те, що для того, щоб збільшити (зменшити) ФС, необхідно її отмонтировать.

Однак, інші файлові системи забезпечують деякі переваги в певних ситуаціях, наприклад, при великих розмірах файлу, великій кількості файлів або проізволітельності файлової системи. Оскільки основне використання LVM - для сценаріїв, коли ви потребуєте в критичному кількості файлів, надзвичайно великих файлах, і / або потреби змінювати розміри ваших файлових систем, слід розглянути інші файлові системи.

Для великої кількості маленьких файлів чудовим вибором буде ReiserFS. Для потокового, некешіруемого введення / виведення, ця ФС займає верхні рядки тестів і може бути на кілька порядків швидше, ніж ext3. Однак, історично, вона виявилася не настільки стабільною, як ext3. Цей висновок зроблено на підставі досить застарілих даних, можливо, зараз ситуація змінилася, але неприємний осад залишився.

Отже, прийнявши все сказане до уваги:

монтування

Нарешті, щоб примонтировать файлові системи, додайте наступні рядки до / etc / fstab:
створюємо і активуємо точки монтування:
Тепер ваш сервер готовий до надання сервісів.

Додаємо надмірність за допомогою RAID

Поки у використанні LVM все досить просто. Однак естьодін головний недолік: при збої будь-якого з дисків, ваші дані опиняться в небезпеці. Дуже складно створити резервну копію половини терабайта даних.

Для компенсації такого ризику необхідно додати надмірність, використовуючи RAID 1. RAID (Redundant Array of Independent Disks) є низкоуровневой технологією комбінування дисків різними способами (рівнями). RAID 1 Віддзеркалюються дані на двох (або більше) дисках. Крім підвищення надійності, з використанням RAID 1 зростає продуктивність, оскільки на дисках містяться ідентичні дані і операції читання / запису можуть бути розділені між ними.







На жаль, цей метод має високу вартість, так як зменшує дисковий обсяг вдвічі. Гарна новина полягає в тому, що нам вистачить і половини терабайта, а LVM досить гнучкий для того, що б додати диски при необхідності в майбутньому.

RAID 5, з чотирма дисками, зовсім інший коленкор. Він дозволяє відновлювати частину дискового простору, але додає складності у використанні. Крім того, показуючи непогану продуктивність на операціях читання, цей тип сильно програє на операціях запису. Оскільки диски зараз досить дешеві, не варто мучиться заради вигод, які дають RAID 5.

Хоча мало б сенс відразу почати з установки системи з використанням RAID, ми чекали, щоб ми могли продемонструвати, як мігрувати з звичайних дисків на RAID без отмонтірованія файлових систем.

Зараз ми об'єднаємо чотири диски в дві пари RAID 1: / dev / sda + / dev / sdd and / dev / sdb + / dev / sdc. Причина для такого специфічного об'єднання полягає в тому, що sda і sdd є першим і другим дисками на різних контролерах; тому, в разі відмови контролера, ви зможете звертатися до двох дисків на останньому контролері. При використанні таких пар відносні швидкості доступу балансувати так, що жоден тип RAID НЕ повільніше, ніж інший. Можливо так само підвищення продуктивності від розподілу операцій читання / запису між двома контролерами.

Спочатку, виведіть два диска SATA (sdb і sdd) з datavg VG:
Тепер змінимо тип розділів на цих двох дисках, вибравши тип fd (Linux raid autodetect):
Тепер створимо дзеркало RAID 1, вказуючи md. що інша "половина" дзеркала відсутня (бо два інших диска ще не готові для додавання в RAID).
Додаємо це бите дзеркало в LVM:
Потім, переносимо залишилися диски в дзеркало:
На закінчення, міняємо типи дисків на fd і отримуємо бите дзеркало, але з повністю дзеркальною інформацією:
Хоча і приклавши багато зусиль для створення RAID 1, ми захистили LVM без повторної перевстановлення, копіювання, отмонтірованія ФС або перезавантаження системи.

Доступ до файлів по мережі

Користь файлового сервера сумнівна, якщо ви не можете легко отримати доступ до файлів. Є багато способів зробити це, але найбільш поширеним є Мережева Файлова система (NFS). NFS дозволяє іншим * nix машинам монтувати загальні ресурси для прямого використання, до того ж, вона дуже легко конфігурується в Linux.

Спершу переконайтеся, що на вашому файловому сервері в ядрі дозволений NFS (в даному прикладі 2.6.15):
Зберіть і переустановите ядро, після чого перезапустіть сервер. Якщо перезавантаження небажана, то зберіть NFS як модуль і потім завантажте його за допомогою modprobe nfsd. Запускаємо сервер NFS. Для цього, в вашому дистрибутиві Linux є система init. Наприклад, в Gentoo, ви побачите:
Ви можете повторно перевірити, чи запущений NFS, запитуючи portmapper командою rpcinfo-p | grep nfs.
Потім ви повинні визначити, які каталоги NFS повинна експортувати. Додайте їх в / etc / exports.
Це список каталогів, призначених для загального доступу з зазначенням мережі, з якої дозволений доступ і кілька додаткових опцій. Опції rw і sync мають на увазі під собою дозвіл на читання / запис і здійснення синхронізації каталогів, що запобігає порушення цілісності даних, якщо сервер був перезавантажений в середині запису файлу, хоча і ми і залишимось без переваг async режиму. Ехпортіруем ці NFS ресурси:
Тепер подмонтіруйте ці русурси на кожній машині, яка буде використовувати їх. Додамо відповідні рядки з параметром fileserv в / etc / fstab клієнтської машини:
На закінчення, створюємо точки монтування і монтуємо ресурси:
Тепер всі машини вашої мережі мають доступ до великого, надійність і розширювальні дискового простору!

Стратегія створення резервних файлів

При використанні LVM можуть виникнути проблеми резервного копіювання даних. Використання RAID захищає від дискових відмов, але ця технологія беззахисна від пожежі, крадіжки або випадкового видалення файлів.

Традиційно, для накопичувачів подібного класу використовується магнітна стрічка. Ця технологія все ще життєздатна і має деякі переваги, але може бути дорога і повільна для системи такого розміру. На щастя, є більш сучасні технології.

rsync - потужна утиліта для того, щоб копіювати файли з однієї системи на іншу і вона досить добре працює через Інтернет. Ви можете встановити дублюючу систему в фірмі одного в іншому місті і періодично послати резервні копії туди. Це можна зробити за допомогою cronjob:
Інший підхід полягає в тому, щоб прикріпити до вашого сервера пару зовнішніх RAID 1 жорстких дисків через Firewire, USB або eSATA. Додайте один диск к / dev / md0 і другий к / dev / md1. Як тільки віддзеркалення пройде, вимкніть їх і збережіть в безпечному місці. Підключайте диски щотижня або щомісяця, залежно від ваших потреб.

Розширення і перерозподіл

Припустимо, що на наступний рік вам знадобляться додаткові обсяги дискової пам'яті. Спочатку можна використовувати зарезервоване простір, наприклад для того, щоб розширити простір для загальних файлів з 10GB до 15GB, виконайте наступну команду:
Але коли вільного місця не залишиться, нам доведеться замінити 250G диски на диски ємністю 800G. У разі використання RAID 1, міграція є досить простим процесом. Для того, що б позначити диск кожного дзеркала як "битий", а потім видалити його, використовуйте команду mdadm.
Вийміть диски sda і sdc, а потім замініть їх новими. Далі розбийте 800G диски на два розділи по 250G і 550G, використовуючи fdisk і додайте розділи назад, до md0 і md1:
Повторіть вищезгаданий процес з дисками sdd і sdb, щоб замінити їх на нові, потім створіть третє і четверте пристрій RAID, md2 і md3, використовуючи новий простір:
На закінчення, додамо їх в LVM:
Файловий сервер тепер має 1.6TB дискової пам'яті.

LVM і робоча станція

Поки ми говорили про використання LVM і RAID для управління дисковим простором файлового сервера, але що якщо ви хочете встановити LVM на своїй робочій машині? Це можна зробити, але варто взяти до уваги кілька аспектів.

По-перше, деякі дистрибутиви Linux на етапі установки або оновлення не підтримують RAID або LVM, що може доставити незручності. Варто звернути на це увагу.

По-друге, наявність кореневої файлової системи на LVM може ускладнити відновлення пошкоджених файлових систем. Оскільки завантажувачі не підтримують LVM, розділ / boot повинен бути не LVM (хоча може бути на пристрої RAID 1).

По-третє, вам необхідно вільний дисковий простір для нового розділу LVM. Якщо такого у вас немає, то спробуйте обрізати кореневий розділ, як описано в LVM HOWTO.

У цьому прикладі ми розглянемо ситуацію, коли у вас є swap і / boot на власних розділах, поза LVM. Ми загострити увагу на тому, як перенести кореневий розділ всередину LVM розділу / dev / hda4. Перевірте, що тип файлової системи на hda4 - LVM (тип 8e).

Ініціалізуйте LVM і створіть новий фізичний том:
Тепер створіть логічний тому розміром в 5G, відформатований в xfs:
Передайте файли з існуючої кореневої файлової системи на новий LVM:
Потім, модифікуємо / etc / fstab для монтування / в / dev / rootvg / root замість / dev / hda3.

Сама хитра частина полягає в перезібравши initrd для включення підтримки LVM. Цей процес дуже сильно залежить від дистрибутива, наприклад mkinitrd або yaird. Ваш образ initrd повинен завантажити модуль LVM, в іншому випадку коренева файлова система буде недоступна. Про всяк випадок, збережіть образ initrd і новий зробіть з іншим ім'ям, наприклад /boot/initrd-lvm.img.

На закінчення, поновіть bootloader. Додайте новий розділ для нової кореневої файлової системи, продублировав стару рядок завантаження. У новому рядку змініть root с / dev / hda3 на / dev / rootvg / rootlv і замініть initrd на новий. Якщо ви використовуєте lilo, переконайтеся, що запустили lilo, як тільки зробили зміни. Наприклад, з grub ми будемо мати:
Додамо нову секцію:

висновок

LVM є однією з багатьох технологій Linux, доступною користувачам. LVM дозволяє досягти більшої гнучкості в управлінні дисковим простором і об'єднана з RAID 1, NFS і хорошою стратегією бекапа пожет дати куленепробивний, легко керований спосіб зберігати і спільно використовувати будь-яку кількість файлів.

Bryce Harrington і Kees Cook. Переклад: Сгибнев Михайло (www.dreamcatcher.ru) - Управління дисковим простором за допомогою LVM Версія для друку

Бібліотека Лінуксцентра. список розділів







Схожі статті