Русский
Русский
English
Статистика
Реклама

Lvm

Перевод Барьеры и журналируемые файловые системы

17.10.2020 10:23:13 | Автор: admin

Всем отличных выходных! Приглашаем на бесплатный Demo-урок Конфигурирование web-сервера (Apache, Nginx, балансировка Nginx), который проведёт Андрей Буранов специалист по UNIX-системам в компании Mail.Ru Group. А также публикуем статью Jonathan Corbet Executive Editor в LWN.net.


Журналируемые файловые системы обещают освободить системных администраторов от проблем с повреждением диска при сбоях системы. Даже без запуска проверки целостности файловой системы. Хотя в реальности, конечно, все немного сложнее. И как показывает недавнее обсуждение, может, даже более запутанно, чем многие из нас думают, поскольку обеспечение целостности журналируемых файловых систем влияет на производительность.

Файловая система, такая как ext3, использует отдельную область на диске, называемую журнал. При внесении изменений в метаданные файловой системы, эти изменения сначала записываются в журнал без модификации остальной файловой системы. После записи всех изменений в журнал в него добавляется "коммит блок", указывающий на завершение транзакции. И только после записи коммит блока, транзакция фиксируется, и измененные метаданные записываются на диск. Если система в какой-то момент выйдет из строя, то с помощью информации в журнале можно безопасно завершить работу и избежать повреждений файловой системы из-за того, что обновилась только часть метаданных.

Однако есть одна загвоздка: код файловой системы перед записью коммит блока должен быть абсолютно уверен, что вся информация о транзакции уже попала в журнал. Просто записывать операции в правильном порядке недостаточно современные диски поддерживают большие внутренние кэши и переупорядочивают операции для улучшения производительности. Поэтому перед коммит блоком необходимо явным образом указать на перенос всех данных журнала на диск. Если коммит блок будет записан раньше, то журнал может быть поврежден. Для решения этой проблемы используются барьеры. По сути, барьер запрещает запись любых блоков после барьера, пока все блоки, записанные до барьера, не будут перенесены на диск. Используя барьеры, файловые системы гарантируют согласованность файловых структур.

Но есть еще одна проблема: файловые системы ext3 и ext4 по умолчанию не используют барьеры. Опция есть, но если администратор не включил их явно, то эти файловые системы работают без барьеров, хотя в некоторых дистрибутивах (например, SUSE) значения по умолчанию другие. Эрик Сандин (Eric Sandeen) недавно решил, что эту ситуацию надо изменить и сделал патч, модифицирующий настройки по умолчанию для ext3 и ext4. И тогда началось бурное обсуждение.

Эндрю Мортон (Andrew Morton) очень подробно ответил, почему значение по умолчанию именно такое:

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

Здесь нет идеальных решений, и я склоняюсь к тому, чтобы не будить эту спящую собаку и оставить параметры по умолчанию на усмотрение разработчиков дистрибутивов.

Таким образом, по умолчанию барьеры отключены, так как они серьезно влияют на производительность. Кроме того, файловые системы вполне успешно используются без барьеров. Сообщения о повреждении файловой системы ext3 немногочисленны и редки.

Но это не просто везение. Тед Тсо (Ted Ts'o) объясняет это тем, что журнал ext3 / ext4 обычно расположен непрерывно. Во-первых, драйвер файловой системы пытается создать его непрерывным. Во-вторых, журнал обычно создается одновременно с файловой системой, когда легко найти непрерывное пространство. Непрерывность и упорядоченность полезны не только для производительности, но и для предотвращения переупорядочивания. Обычно коммит блок будет размещаться сразу после остальных данных в журнале, поэтому у диска нет причин для переупорядочивания. Коммит блок естественным образом записывается на диск сразу после остальных записей журнала.

Тем не менее никто не утверждает, что так будет всегда. Дисковые накопители могут вести себя и по-другому. Кроме того, журнал представляет собой кольцевой буфер. Поэтому когда транзакция записывается в конец журнала, то коммит блок может оказаться в более раннем блоке, перед другими записями журнала. Так что вероятность повреждения есть всегда. На самом деле, у Криса Мэйсона (Chris Mason) есть для этого тесты. Нет сомнений, что работа без барьеров менее безопасна, чем с ними.

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

Текущая реализация ext3 (когда барьеры включены) для каждой транзакции выполняет следующую последовательность операций:

  1. Данные записываются в журнал

  2. Выполняется барьер

  3. Записывается коммит блок

  4. Выполняется следующий барьер

  5. Позже метаданные сбрасываются на диск

В ext4 первый барьер (шаг 2) можно опустить, так как файловая система ext4 поддерживает контрольные суммы в журнале.

Если данные журнала и коммит блок переупорядочены, а операция прервана в результате сбоя, то контрольная сумма журнала не будет соответствовать той, которая хранится в коммит блоке, и транзакция будет отклонена.

Крис Мейсон полагает, что было бы "в целом безопасно" убрать этот барьер и в ext3, с возможным исключением, когда журнал доходит до конца и начинает писаться с начала.

Еще одна идея для ускорения работы отложить операции с барьерами, когда это возможно. Если нет острой необходимости сразу сбрасывать данные на диск, то можно создать несколько транзакций в журнале, и сбрасывать на диск одним барьером.

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

Похоже, пришло время подумать, как сделать стоимость барьеров приемлемой. Тед Тсо, кажется, считает аналогично:

Я думаю, что мы должны включить барьеры в ext3/4, а затем работать над уменьшением накладных расходов в ext4 / jbd2. Скорее всего, подавляющее большинство систем не работают в условиях, подобных тем, которые использовал Крис для демонстрации проблемы и безопасность файловой системы по умолчанию должна быть в приоритете.

Здравый смысл мне говорит, что эта собака уже не спит и, вероятно, какое-то время будет лаять. Это может вызвать беспокойство некоторых соседей, но это лучше, чем позволить ей укусить.


Интересно развиваться в данном направлении? Запишитесь на бесплатный Demo-урок Конфигурирование web-сервера (Apache, Nginx, балансировка Nginx) и участвуйте в трансляции Работа с логами в Linux, которую проведёт Павел Викирюк оператор связи MVNO, DevOps-инженер.

Подробнее..

Data Recovery from LVM Volumes in Linux

17.03.2021 00:15:17 | Автор: admin
Would you like to know how to use the LVM technology in Linux? How to create an LVM volume, how to configure and mount it in your operating system, how to add and remove disks, and how to recover the information you have accidentally deleted? In todays article, you will find all of that and even more.

image



What is LVM?



LVM (Logical Volume Manager) is a standard disk management feature available in every version of Linux. The volume manager provides a new level of interaction between your operating system and disks or volumes which this system is using. In a conventional disk management pattern, Linux looks for available drives first, and then checks what volumes are available on these devices.

With the help of LVM, disks or volumes can be united into a single space. If the disk space is treated like that, the operating system will see no difference between them and the volume manager will show the operating system only the necessary volume groups or physical disks.



In fact, LVM has several considerable advantages to offer:

It can create a logical volume based on any number of physical disks which will be represented in the operating system as a single disk space.
The number of disks included and the size of such volume can be modified without interrupting your work.
Also, the LVM technology lets you do many things on the fly, like copying certain volumes, or configuring the mirroring feature the way it works in RAID 1 systems.

How to add LVM to the operating system?



If you are going to use LVM options for the first time, you have to install it. Here is the command you need for installation: sudo apt install lvm2

image

After that, type the administrators password, and click Yes to confirm your intention.

image

Some Linux versions have this feature installed by default.

This can be checked easily, by typing the command lvm in the terminal window.

image

Now you can move on to dealing with disks.

How to format a physical disk


Here we are, with three empty hard disks 320 GB each, which are unformatted and without any partitions.

image

The easiest way to format a disk is by using a disk management utility. Click on a disk open advanced settings then format it.

image

Specify the name and file system Next and click Format again to confirm your action

image

Now youll need the password to your administrator account.

image

Now that this disk is formatted, repeat the operation for every other disk which is not.

Also, a disk can be formatted with the terminal, using the command fdisk.

Sign in with a superuser account sudo i type the password.

image

Now run the following command: fdisk /dev/sdb where sdb is the unformatted disk.

image

Before you continue, make sure you have selected the right disk, because this operation erases all data from there.

Type n new volume, p primary, 1 first partition, then press Enter twice.

image

Now lets get the volume ready to be used with LVM. Type t to change the volume type, and then 8e to assign LVM type.

image

Check the volume properties by pressing p you can see everything is OK, a new formatted volume with the name sdb1 appeared; press w to record the changes. Similarly, format all the disks which are not formatted yet.

image

Now create an LVM volume on the partition you have just created, by entering the command: pvcreate /dev/sdb1.

image

Repeat the command for every disk: pvcreate /dev/sdс1, pvcreate /dev/sdd1.

image

Create a volume group


Combine the three disks you have just prepared into an LVM volume. Heres the command to use:

vgcreate vg1 /dev/sdb1 dev/sdc1 dev/sdd1

where vg1 is the name of the new group. Actually, you can use any name you prefer, but its recommended to put the vg letter combination before the name so that you know it is a volume group.

image

Create a logical volume to use LVM


When the disks are combined into the group, you need to create a new logical volume, so that you can use this group. For this purpose, type the command:

lvcreate -L 10G -n lv1 vg1

Where the -L stands for the size of the logical volume it is 10 GB in this case, and the -n assigns a name to the volume, and the vg1 indicates from which volume the space should be taken.

image

If there is any data on the disk, the operating system will warn you about it: type yes to confirm your decision to erase the information.

How to format and mount a logical volume?


The last step you still have to take is to format the volume in the disk management utility and mount it. Click on it to open advanced settings and then format it; specify the name and file system Next and click Format again.

image

Type the root (superuser) account password, and click here to start mounting. Now you can use the new volume.

image

If you need to format it with the terminal, type the following command:

mkfs -t ext4 /dev/vg1/lv1

Specify the file system as Ext4, the group name, and the volume name.

image

For mounting, type the following: mkdir /mnt/lv1, and then mount -t ext4 /dev/vg1/lv1 /mnt/lv1.

image

The volume is mounted.

How to change the volume size?


One of the advantages offered by logical volumes is the opportunity to add a new hard disk on the fly and expand the volume group. And on the contrary, if there is a hard disk in the volume group which is not in use, you can remove it.

There are three main tools to make physical volumes, volume groups and logical volumes larger or smaller.

  • Resize this command shrinks or extends physical and logical volumes, but cant handle volume groups;
  • Extend use it to increase logical volumes or volume groups;
  • Reduce it can make logical volumes or volume groups smaller.


image

How to add a new hard disk to a volume group


The first step when you want to add a hard disk to a group is to format it. Scroll up to find a detailed explanation of this step.

After that, run the following command: vgextend vg1 /dev/sde1

image

where vg1 is the group name, and sde1 is the new (formatted) disk.

How to display detailed information about LVM


To display detailed information on the composition of an LVM group, run the command pvdisplay.

image

It displays the path to a physical disk, the name of the virtual group where it belongs, the information on the free and used disk space, disk ID and many other things.

How to remove a logical volume


To remove a logical volume, make sure that is disconnected (unmounted), then run the lvremove command, and the volume will be removed.

This command will help you to remove a volume group, but before that, you need to unmount the logical volume, so use another command first: umount /mnt/lv1

image

To proceed with removal, type this command: lvremove /dev/vg1/lv1, and type Yes to confirm this operation.

image

When the removal operation is successful, youll see this message.

Now the group can be removed, with this command: sudo vgremove vg1

image

Now it is time to remove all the disks that used to constitute the group; this command will do it: sudo pvremove /dev/sdb1 /dev/sdc1 /dev/sdd1

image

All the formatting of the physical disk is removed, and now the disk is back to its original condition.

How to recover deleted data from an LVM volume


If you accidentally removed important information from an LVM logical volume, you can still restore it with the help of Hetman Partition Recovery.

This utility supports LVM partitions and guarantees data recovery from there. It can handle most popular file systems used in Windows, Linux, Unix, and MacOS. It can ignore errors of the logical structure, scan the hard disk and restore the files you are looking for.

At the moment, there is no version of Hetman Partition Recovery for Linux. However, you can still run it with the help of a virtual machine based on Windows, install it as the secondary operating system on your PC, or connect the hard disk to another computer.

Start the program: after initialization, it recognized the logical volume without effort and now it displays all the data available on this volume.

image

Start with running Fast scan right-click on the disk, Open, Fast scan and when the scan is over, the program will display the results in the right side of the window. Removed elements are marked with a red cross.

image

If the Fast scan doesnt find the data you need, then use Full analysis.

image

Select the files to be restored, click Recovery, choose where to save them, then click Recovery again.

image

When the process is over, you will find all the files in the folder you have selected.

Conclusion


In this article, we did our best to explain how to use Logical Volume Management an integrated feature of Linux. We have reviewed all important stages: creating and configuring an LVM partition, adding and mounting new hard disks, shrinking and removing volumes. The LVM feature has been developed with servers in mind, but now you can enjoy all of its benefits on a desktop PC at home.

See the full article with all additional video tutorials.
Подробнее..
Категории: Data mining , Data engineering , Data recovery , Lvm

RAID 5 с LVM под Linux и как с него восстанавливать информацию

23.03.2021 00:21:32 | Автор: admin
В данном руководстве мы рассмотрим способ создания в ОС Linux программного LVM RAID. А также представим простое решение, позволяющее вернуть утраченную информации с LV RAID 5 после случайного удаления или непредвиденной неисправности накопителей.

image



LVM (означает Менеджер логических томов) это функция ОС Linux, благодаря которой можно объединить несколько разделов одного или нескольких накопителей в единый непрерывный логический раздел (том). А LVM RAID это отдельный метод сбора LV раздела, который объединяет несколько физических носителей, но они получают дополнительную защиту данных как RAID массив.

Драйвера DM будут использоваться для управления физическими устройствами LVM, а драйвера MD для размещения информации на носителях. LVM управляет скрытыми логическими томами (DM), которые находятся между видимыми разделами (LV) и носителями.

В нашем случае, мы будем создавать RAID 5. Чем он отличается от других типов массивов, вы узнаете посмотрев этот видеоурок.



Размечаем физические диски, создаем LV RAID группу.


В терминале Linux вводим команду: lvcreate, и создаем LV RAID.

image

Если в системе не установлен компонент LVM, то прописываем команду: sudo apt install lvm2.

image

Все команды нужно выполнять от имени root, поэтому вводим: sudo -i, чтобы не вводить пароль root постоянно.

image

Теперь разметка дисков через стандартную дисковую утилиту Linux, выбираем тип ФС и форматируем.

image

Или выполняем через терминал: fdisk /dev/sdb.

image

Указываем параметры:

  • n создает новый раздел,
  • p устанавливает для раздела значение основной,
  • 1 присваивает номер.

Дважды жмем Ввод, соглашаясь со значением первого и последнего секторов.

image

Далее, нужно задать настройки LVM. Каждый в своей строке применяем атрибуты:

  • t запускает процесс по изменению типа нового раздела,
  • 8e устанавливает значение LVM.


image

Убедимся, что новый раздел имеет нужный тип. Наберите в командной строке атрибут p. Система обработает запрос и представит в табличной форме итоговые сведения. Искомое устройство будет маркировано значением sdb1 с типом системы Linux LVM. Потом записываем установленные изменения, используя атрибут w. Теперь повторите для каждого диска, который будет входить в LVM.

image

Далее вводим: pvcreate /dev/sdb1.

image

Повторяем команду для каждого диска, заменив sdb1 на другое имя, в нашем случае sdc1, sdd1, sde1, sdf1.

image

Теперь собираем в единую группу: vgcreate и перечисляем все входящие носители:

vgcreate vg1 /dev/sdb1 dev/sdc1 dev/sdd1 dev/sde1 dev/sdf1. Где vg1 имя группы.

image

Создаем программный LVM RAID 5


Вводим команду: lvcreate -n lvr5 type raid5 -L 10G -i 4 vg1

image

Где атрибуты означают:

  • -n присваивает тому имя.
  • type raid5 задает тип массива.
  • -L устанавливает граничный размер для логического тома (у нас его величина равна 10 ГБ).
  • -i указывает количество устройств, которые будут задействованы в хранении пользовательских данных. Сюда не входит дополнительное устройство для хранения блоков четности. Число должно быть 2 или больше, так как минимальное количество дисков для данного типа три.
  • vg1 объясняет системе, откуда ей следует взять нужное количество дискового пространства (указывается конкретный том или целая группа).

После выполнения новый массив RAID 5 на виртуальной группе LVM будет создан. Теперь нужно отформатировать массив смонтировать. Форматируем RAID 5 в ext4: mkfs -t ext4 /dev/vg1/lvr5

image

Где, файловая система ext4, название группы vg1, имя тома lvr5.

Монтируем RAID 5 массив в систему, вводим команду: mkdir /mnt/lvr5, и вторую: mount -t ext4 /dev/vg1/lvr5 /mnt/lvr5.

image

Теперь массив смонтирован и готов к работе.

image

Проверяем статус LVM RAID


Выполняем команду: lvs -a -o name,copy_percent,devices vg1

image

На терминале будет выведена вся доступная информация об подключенных физических носителях и группах томов.

image

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

Производители NAS, к своим устройствам, предоставляют собственное ПО для восстановления данных с их массива. Но так как мы использовали программный RAID, то нам понадобится По от сторонних разработчиков. Главные критерии выбора оного: поддержка нужных файловых систем, низкоуровневый чтение диска, а также наличие автоматического и ручного RAID конструктора. Программа должна пересобрать массив заново и позволить смонтировать его в систему, а далее остается только провести анализ и сохранить все живые данные.

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

Полную версию статьи со всеми дополнительными видео уроками смотрите в источнике.
Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru