Статия на OpenNET - Управление на дисковото пространство на Linux с LVM (дисков lvm дял на linux

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

Linux Logical Volume Manager (LVM) е машина за виртуализация на дискове. Тя ви позволява да създавате "виртуални" дискови дялове на един или повече твърди дискове, които по-късно можете да увеличавате, свивате или премествате от диск на диск според вашите нужди. Също така става възможно да се преодолее ограничението за размера на дяла, наложено от размера на твърдия диск.

Тази статия първо ще разгледа начален файлов сървър, след което ще направим някои промени, за да добавим излишък с RAID 1. Ще разгледаме също как LVM може да се използва за домашни потребители.

Инсталиране на LVM

Основи на LVM

За да използвате LVM, трябва да разберете няколко неща. Тук имате твърди дискове. Дисковото пространство на тези устройства е разделено на секции. И накрая, файловата система се записва върху тези дялове. За сравнение, в LVM групите томове (VG) са разделени на логически томове (LV), където в крайна сметка се намират файловите системи (Фигура 1).

Всеки VG е съставен от набор от физически томове (PV). Можете да разширите (или намалите) размера на групите обеми, като добавите или премахнете толкова PV, колкото искате, стига да има достатъчно PV, за да побере съдържанието на всички разпределени LV. Докато има свободно място във VG, можете да увеличавате или намалявате размера на вашите логически томове (въпреки че повечето файлови системи не обичат свиването).

статия

Пример: прост файлов сървър

Лесен случай на използване на LVM е традиционен файлов сървър, който съхранява резервни копия, медийни файлове и споделени файлове за компютри на множество членове на семейството. Гъвкавостта е ключово изискване; кой знае какви изисквания за дискови обеми ще донесатследващата година?

Като пример, разгледайте изискванията на следните раздели: В крайна сметка тези изисквания може да се увеличат многократно през следващите година или две, но е невъзможно да се каже точно кой раздел и с колко.

Традиционно файловият сървър използва SCSI устройства, но днес SATA устройствата предлагат атрактивно съотношение скорост/ниска цена. По време на това писане 250 GB SATA устройства струват около $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 е отличен избор. За стрийминг, некеширани I/O, този FS е на върха на теста и може да бъде с няколко порядъка по-бърз от ext3. В исторически план обаче не е бил толкова стабилен като ext3. Това заключение е направено въз основа на доста остарели данни, може би сега ситуацията се е променила, но неприятният послевкус остава.

И така, като вземем предвид всичко по-горе:

Монтаж

Добавяне на излишък с 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 и /dev/sdb + /dev/sdc. Причината за това специфично сливане е, че sda и sdd са първото и второто устройство на различни контролери; така че в случай на повреда на контролера можете да получите достъп до два диска на оставащия контролер. Когато се използват такива двойки, относителните скорости на достъп са балансирани, така че нито един тип RAID да не е по-бавен от друг. Също така е възможно да се подобри производителността от разпределението на операциите за четене / запис между двата контролера.

Първо, извадете два SATA диска (sdb и sdd) от datavg VG: Сега променете типа на дяла на тези два диска на типfd(Linux raid autodetect): Сега създайте RAID 1 огледало, като посочитеmd, че другата "половина" на огледалото липсва (тъй като другите две устройства все още не са готови за добавяне към RAID). Добавете това повредено огледало към LVM: След това прехвърлете останалите дискове към огледалото: BИ накрая, променете типовете дискове наfdи получете счупено огледало, но с напълно огледална информация: Въпреки че положихме много усилия в създаването на RAID 1, ние защитихме LVM без повторно инсталиране, копиране, демонтиране на файловата система или рестартиране на системата.

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

Полезността на файловия сървър е съмнителна, ако нямате лесен достъп до файловете. Има много начини да направите това, но най-често срещаният е мрежовата файлова система (NFS). NFS позволява на други *nix машини да монтират споделяния за директна употреба и е много лесен за конфигуриране на Linux.

Първо се уверете, че вашият файлов сървър има активиран NFS в ядрото (2.6.15 в този пример): Създайте и преинсталирайте ядрото, след което рестартирайте сървъра. Ако рестартирането не е желано, изградете NFS като модул и след това го заредете сmodprobe nfsd.

Стартираме NFS сървъра. За да направите това, вашата Linux дистрибуция има система за стартиране. Например в Gentoo ще видите: Можете да проверите отново дали NFS работи, като направите заявка към portmapper сrpcinfo -p grep nfs: След това трябва да посочите кои директории NFS да експортира. Добавете ги към/etc/exports: Това е списък с директории, които да бъдат споделени с мрежата, от които е разрешен достъп и няколко допълнителни опции. Опциите за rw и синхронизиране предполагат разрешение за четене/запис и извършване на синхронизация на директория, което предотвратява нарушаване на целостта на данните, ако сървърът се рестартира по време на писане на файл, въпреки че ние също ще загубим предимствата на асинхронния режим.

Експортиране на тези споделяния на NFS: Сега монтирайте тези споделяния на всяка машина, която ще ги използва. Добавете съответните редове с параметъраfileserv в/etc/fstabна клиентската машина: И накрая, създайте точки за монтиране и ресурси за монтиране: Сега всички машини във вашата мрежа имат достъп до голямо, надеждно и разширяемо дисково пространство!

Резервна стратегия

Когато използвате LVM, могат да възникнат проблеми с архивирането на данни. Използването на RAID предпазва от повреди на диска, но тази технология е беззащитна срещу пожар, кражба или случайно изтриване на файлове.

Традиционно за устройства от този клас се използва магнитна лента. Тази технология все още е жизнеспособна и има някои предимства, но може да бъде скъпа и бавна за система с такъв размер. За щастие има по-модерни технологии.

rsync е мощна помощна програма за копиране на файлове от една система в друга и работи доста добре в интернет. Можете да инсталирате резервна система във фирма на приятел в друг град и периодично да изпращате резервни копия там. Това може да се направи с cronjob: Друг подход е да прикачите чифт външни RAID 1 твърди дискове към вашия сървър чрез Firewire, USB или eSATA. Добавете един диск към/dev/md0и друг към/dev/md1. След като дублирането приключи, изключете ги и ги запазете на сигурно място. Свързвайте дискове седмично или месечно, в зависимост от вашите нужди.

Разширяване и преразпределение

Да приемем, че имате нужда от повече дисково пространство през следващата година. Първоначално можете да използвате запазеното пространство, например, за да разширите пространството за споделени файлове от 10GB на 15GB, изпълнете следната команда: Но когато не остане свободно място, ще трябва да заменим 250G дискове с 800G дискове.

INВ случая на 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.

Накрая актуализирайте буутлоудъра. Добавете нов дял за новата основна файлова система, като дублирате стария ред за зареждане. На нов ред променете root от/dev/hda3на/dev/rootvg/rootlvи заменете initrd с новия. Ако използвате lilo, не забравяйте да стартирате lilo веднага щом направите промени. Например с grub ще имаме: Добавяне на нов раздел: