LVM та відновлення після аварій


13

Я розумію, що таке LVM і що вона виконує, але відчуваю, що я пропускаю деякі речі.

Скажімо, у нас є два фізичні накопичувачі, sda та sdb. Обидва - по 100 мег. Я розміщую їх у VolumeGroup1 і створюю один 200-мегалогічний LogicalVolume1.

Що станеться, якщо я створять файл 150 мег? 100 мег фізично було б на sda, а 50 - на sdb? Якщо так, що говорить ОС, що фрагмент файлу знаходиться на одному диску, а інший - на другому?

А що з несправністю диска? Якщо припустити відсутність RAID, якщо sdb не вдасться, всі дані на sda будуть втрачені? Чи все-таки можна контролювати, які файли є на яких фізичних дисках?

Як ви загалом керуєте LVM? Чи створюєте ви одну чи дві великі групи томів, потім робите розділи, як це має сенс? Будь-які інші поради?


1
Якщо ви хочете уникнути надмірності нальоту, великої медіа та може жити з відмовами на одному диску, це може працювати для вас: serverfault.com/a/543684/165065
DennisH

Відповіді:


15

Скажімо, у нас є два фізичні накопичувачі, sda та sdb. Обидва - по 100 мег. Я розміщую їх у VolumeGroup1 і створюю один 200-мегалогічний LogicalVolume1.
Що станеться, якщо я створять файл 150 мег? 100 мег фізично було б на sda, а 50 - на sdb?

Правильно (якщо припустити, що файлова система була порожньою до створення файлу).

Якщо так, що говорить ОС, що фрагмент файлу знаходиться на одному диску, а інший - на другому?

LVM повідомляє операційній системі, що є один єдиний диск на 200 Мб. Після цього частина LVM ядра (він складається з двох частин, засоби управління простором користувачів та драйвери ядра) буде відображати те, що бачить операційна система, на фізичні місця / блоки на дисках.

А що з несправністю диска? Якщо припустити відсутність RAID, якщо sdb не вдасться, всі дані на sda будуть втрачені? Чи все-таки можна контролювати, які файли є на яких фізичних дисках?

Так, вважайте втраченими дані.

Якщо ви створюєте менші логічні томи, тоді ви можете використовувати pvmoveкоманду для переміщення їх з диска на диск.

Як ви загалом керуєте LVM? Чи створюєте ви одну чи дві великі групи томів, потім робите розділи, як це має сенс? Будь-які інші поради?

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


Ви впевнені в цьому першому? Я думав, що LVM зазвичай дефолтом є смугастий, так що файл 150 мега, ймовірно, буде мати приблизно 75 мег на кожному диску
freiheit

2
Смуги не створюються, якщо ви не вкажете --stripes <num>(короткі -i <num>) під час створення логічного тома.
pgs

PS, моя відповідь тут містить скрипт, який покаже вам, які ПВ використовує кожен LV: serverfault.com/questions/28592/…
pgs

@freiheit, pgs вірно, типовим є розширення гучності, а не смужка.
Avery Payne

щодо управління я готовий створити одну групу lvm ​​для своїх 3 HD-дисків, але створювати лише логічні томи, обмежені фізичними томами, а потім використовувати лише наявні пробіли для створення знімків; чи вважаєте ви, що це найбезпечніше для домашнього користувача (у якого немає нальоту, ані грошей, щоб швидко замінити речі)?
Сила Водолія

4

Основна річ, яка дозволяє працювати з LVM та Software Raid в Linux - це частина пристрою ядра пристрою. Це те, що абстрагує адреси блоків фізичних пристроїв на віртуальні блоки пристроїв, які ви використовуєте.

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

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

На практиці я б не використовував LVM, не запускаючи його на якомусь RAID. Я використовував LVM на файловому сервері 30 ТБ, який мав близько 20 томів апаратного RAID5 в одному VG. Але якщо у вас достатньо безкоштовних розширень, ви можете використовувати pvmove для переміщення даних з одного або декількох фотографій, якщо це почне створювати проблеми.

Але завжди майте на своєму складі резервну стратегію, яка час від часу тестується.


3

Як ви загалом керуєте LVM? Чи створюєте ви одну чи дві великі групи томів, потім робите розділи, як це має сенс?

Моя загальна стратегія полягає в тому, щоб скласти в окрему групу томів фізичні обсяги, які, можливо, можуть бути переміщені (як цілий набір) до іншої системи.

Якщо у вас є зовнішнє сховище, корисно розмістити його в окремій томовій групі. Фізично легко відключити його від цього комп’ютера та підключити до іншого, тому його експорт / імпорт у LVM аналогічно логічно легко, зберігаючи дані недоторканими.

Якщо у вас вже є vg00 на внутрішньому диску (дисках), а потім ви купуєте інший внутрішній диск для своєї машини, задайте собі питання: чи будуть дані на новому диску пов'язані з vg00, і не буде сенсу ніколи рухатися дані в іншу систему? У цьому випадку вона повинна бути частиною vg00. В іншому випадку я б створив vg01, оскільки його можна легко експортувати / імпортувати самостійно.


0

Якщо у вас є два накопичувачі як фізичні томи в такій групі, то у вас є масив JBOD (Just Bunch Of Disks). Якщо один з накопичувачів вийшов з ладу, ви не будете краще захищені, ніж якби диски були розташовані в масиві RAID0.

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

Я вважаю, що кожен PV в VG має копію макета LV, а дані не позбавлені, як у RAID0, тому у вас є більше шансів відновити щось, якщо один з ваших накопичувачів не працює, але якщо втрата даних викликає будь-які проблеми. Я б не розглядав можливість використання двох приводів таким чином взагалі (через LVM або RAID0).


0

Що станеться, якщо я створять файл 150 мег? 100 мег фізично було б на sda, а 50 - на sdb? Якщо так, що говорить ОС, що фрагмент файлу знаходиться на одному диску, а інший - на другому?

LVM (Logical Volume Manager) збирає фізичні обсяги в групи томів. Кожен фізичний об'єм (сам привід) має невеликі шматочки, які називаються фізичними розтяжками. Ці розширення мають унікальний ідентифікатор на диску. Насправді вони пронумеровані послідовно. Коли ви створюєте логічний том, він був побудований з логічних розширень, які з'єднані з фізичними розширеннями. Логічні розширення мають uniq ID в логічному томі. У HP-UX ви можете перевірити, який логічний ступінь поєднується з яким фізичним. У SLES11 я не можу зрозуміти, як це перевірити. lvdisplay --mapsмає бути хорошим, але не перфектним (для мене).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.