LVM и аварийное восстановление

13

Я понимаю, что такое LVM и чего он добивается, но чувствую, что мне чего-то не хватает.

Допустим, у нас есть два физических диска, sda и sdb. Оба по 100 мегабайт. Я помещаю их в VolumeGroup1 и создаю один 200 мегабайт LogicalVolume1.

Что произойдет, если я создам файл размером 150 мегабайт? Будет ли 100 мегабайт физически на SDA и 50 на SDB? Если да, что говорит ОС, что часть файла находится на одном диске, а другая часть - на другом?

Как насчет сбоя диска? Предполагая отсутствие RAID, если sdb завершится неудачей, будут ли потеряны все данные на sda? Есть ли способ контролировать, какие файлы находятся на каких физических дисках?

Как вы вообще управляете LVM? Вы создаете одну или две большие группы томов, а затем создаете разделы, как это имеет смысл? Любые другие советы?

боб
источник
1
Если вы хотите избежать избыточности рейда, большого носителя и выдерживать
DennisH

Ответы:

15

Допустим, у нас есть два физических диска, sda и sdb. Оба по 100 мегабайт. Я помещаю их в VolumeGroup1 и создаю один 200 мегабайт LogicalVolume1.
Что произойдет, если я создам файл размером 150 мегабайт? Будет ли 100 мегабайт физически на SDA и 50 на SDB?

Правильно (при условии, что файловая система была пуста до создания файла).

Если да, что говорит ОС, что часть файла находится на одном диске, а другая часть - на другом?

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

Как насчет сбоя диска? Предполагая отсутствие RAID, если sdb завершится неудачей, будут ли потеряны все данные на sda? Есть ли способ контролировать, какие файлы находятся на каких физических дисках?

Да, считают данные потерянными.

Если вы создаете меньшие логические тома, вы можете использовать pvmoveкоманду для перемещения их с диска на диск.

Как вы вообще управляете LVM? Вы создаете одну или две большие группы томов, а затем создаете разделы, как это имеет смысл? Любые другие советы?

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

PGS
источник
Ты уверен насчет первого? Я думал, что LVM обычно по умолчанию чередуется, так что файл 150 мегабайт, вероятно, будет иметь около 75 мегабайт на каждом диске
freiheit
2
Полосы не создаются, если вы не укажете --stripes <num>(короткий -i <num>) при создании логического тома.
pgs
PS, мой ответ здесь содержит скрипт, который покажет вам, какие PV использует каждый LV: serverfault.com/questions/28592/…
pgs
@freiheit, pgs правильно, по умолчанию это расширение, а не полоса, громкость.
Эйвери Пейн
что касается управления, я хочу создать одну группу lvm ​​для своих 3 жестких дисков, но создать только логические тома, ограниченные физическими томами, а затем использовать только доступные места для создания снимков; Считаете ли вы, что это самый безопасный вариант для домашнего пользователя (у которого нет ни рейда, ни денег, чтобы быстро заменить вещи)?
Водолей Power
4

В основе работы LVM и Software Raid в Linux лежит принцип отображения устройств в ядре. Это то, что абстрагирует адреса блоков физических устройств к используемым вами виртуальным блочным устройствам.

При использовании LVM, как и во всем, что касается данных, вам необходимо знать о последствиях доступности данных. Это не значит, что LVM опасен на самом деле, когда используются правильные методы, его влияние на доступность минимально.

В сценарии, который вы предлагаете в своем вопросе, доступность ваших данных будет такой же, как и у RAID0, где в случае отказа любого диска это приведет к потере данных.

На практике я бы не использовал LVM без запуска его на каком-либо RAID. Я использовал LVM на файловом сервере 30 ТБ, в котором было около 20 томов аппаратного RAID5 в одной VG. Но если у вас достаточно свободных экстентов, вы можете использовать pvmove для переноса данных с одного или нескольких PV, если они начнут вызывать проблемы.

Но всегда имейте стратегию резервного копирования, которая проверяется время от времени.

3dinfluence
источник
3

Как вы вообще управляете LVM? Вы создаете одну или две большие группы томов, а затем создаете разделы, как это имеет смысл?

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

Если у вас есть внешнее хранилище, рекомендуется поместить его в отдельную группу томов. Физически легко отсоединить его от этого компьютера и подключить к другому, поэтому логически должно быть аналогично легко экспортировать / импортировать его в LVM, сохраняя данные нетронутыми.

Если у вас уже есть vg00 на внутреннем диске (дисках), а затем вы покупаете другой внутренний диск для вашей машины, задайте себе вопрос: будут ли данные на новом диске привязаны к vg00, и не было бы никакого смысла перемещать данные в другую систему? В этом случае он должен быть частью vg00. В противном случае я бы создал vg01, так как он может быть легко экспортирован / импортирован сам по себе.

kubanczyk
источник
0

Если у вас есть два физических диска в такой группе, то у вас есть массив JBOD (просто группа дисков). Если один из дисков выйдет из строя, вы не будете лучше защищены, чем если бы диски были организованы в массив RAID0.

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

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

Дэвид Спиллетт
источник
0

Что произойдет, если я создам файл размером 150 мегабайт? Будет ли 100 мегабайт физически на SDA и 50 на SDB? Если да, что говорит ОС, что часть файла находится на одном диске, а другая часть - на другом?

LVM (менеджер логических томов) собирает физические тома в группы томов. Каждый физический том (сам диск) имеет небольшие части, называемые физическими экстентами. У этих экстентов есть уникальный идентификатор на диске. На самом деле они последовательно нумеруются. Когда вы создаете логический том, он создается из логических экстентов, которые связаны с физическими экстентами. Логические экстенты имеют уникальный идентификатор в логическом томе. В HP-UX вы можете проверить, какой логический экстент связан с каким физическим экстентом. В SLES11 я не могу понять, как это проверить. lvdisplay --mapsдолжно быть хорошо, но не идеально (для меня).

Saabi
источник