- Ubuntu Documentation
- What is LVM?
- Versions Tested On
- Preparation
- Order to Operations
- How to burn an ISO
- Start up Ubuntu Live
- Install lvm2
- Set up hard drive partitions
- pvcreate, vgcreate, lvcreate, mkfs
- Ubuntu Installation
- Install lvm2 onto your new Ubuntu Install
- Live cd linux lvm
- Содержание
- Дисклеймер/отмазка [ править ]
- Зачем нужен LVM [ править ]
- Терминология [ править ]
- Примечание по названиям утилит LVM [ править ]
- Создание [ править ]
- Увеличение логических томов [ править ]
- Уменьшение логических томов [ править ]
- Увеличение и уменьшение группы томов [ править ]
- Снапшоты/Снимки [ править ]
- Замена сбойного диска в RAID [ править ]
Ubuntu Documentation
Discussion of this wiki can be found here
This tutorial will help anyone who wishes to set up their desktop using logical volumes on a fresh install of Ubuntu Desktop only. You can use the Ubuntu Alternate image to complete this as well but you will need to set it up in a TUI (Text based-User-Interface). This tutorial will be using a Ubuntu Live CD to complete the LVM setup.
What is LVM?
LVM stands for Logical Volume Manager (or Logical Volume Management). Instead of using all physical volumes for your system (hard to change, static), take one (or many) disk(s) and have that drive logically divided for expandability, better monitoring and all around better disk management on your computer. If you wish to learn more, please refer to the links below:
Versions Tested On
Ubuntu 12.04 (current)
Preparation
Order to Operations
- How to burn an ISO
- Start up Ubuntu Live
- Install lvm2
- Set up hard drive partitions
- pvcreate, vgcreate, lvcreate, mkfs
- Ubuntu Installation
- Install lvm2 onto your new Ubuntu Install
How to burn an ISO
- There are many guides on how to get your Ubuntu ISO going and it doesn’t matter if you use a CD or a USB, either one will work.
Start up Ubuntu Live
Once you have your Ubuntu Live CD or USB ready, start up that computer/laptop, go into your BIOS (usually it’s F2 but this link can help if it doesn’t work: http://www.cyberwalker.com/article/28) and make sure your ‘Boot Sequence’ is set to CDROM or USB (if it’s supported). Save your BIOS setting and watch Ubuntu startup in front of your eyes. Later, you should see two options of «Try Ubuntu» and «Install Ubuntu» (11.04). Select «Try Ubuntu» and let it load into the Ubuntu 11.04.
Install lvm2
- Now that Ubuntu is booted up, now we will need a terminal by selecting the following:
Applications >> Accessories >> Terminal Once the terminal in front of you, run the following command: This command will install lvm2 onto your Live CD session only but will help with the rest of this tutorial.
Set up hard drive partitions
- Keep the terminal open as we will be creating partitions using the command fdisk. In the example below, I will be setting up my desktop using the /dev/sda patition (to find yours, do the command ‘sudo fdisk -l’ and make sure you know much your storage is on the machine so you can figure out what physical device you want to use): The reason for this setup is explained below:
/dev/sda1 — This partition has been created for /boot of the installation. It always a good thing to make your /boot the first partition of any Linux system
/dev/sda2 — This is the LVM physical parition that will be used to create the rest of the system before installation.
NOTE: In the following setup, I will be using a LVM swap partition instead of making it through fdisk. Having swap as a LVM partition might cause overhead. You can make a new partition before you make your LVM partition as a swap partition. Make sure you know how much you need since you will not be able to increase the swap size easily. The table id for swap is 82 (Linux swap / Solaris).
pvcreate, vgcreate, lvcreate, mkfs
- This part will help set up your logical volumes for your desktop. In this example, there will be three different logical volumes using one volume group and one physical volume: Create the physical volume: This gives the LVM an understand of what physical volumes it has to offer for volume groups and logical volumes during your setup. Create a group using our newly create physical volume: This part creates a new volume group which is tided to a physical volume. A physical disk can not be can not be used on multiple violume groups (unless you partition that disk before hand like we did above). The name of this volume group is ‘sysvg’ but you can name it whatever you wish. Create the swap logical volume using the newly create sysvg group: I need a swap for the system so 1GB will do in this case (you can change the size to whatever you want). The name can be whatever you want it to be but I like to keep a naming scheme when creating VG’s and LV’s. Then assign it to a VG group that you made from before and you will have your first LV done. Create the root logical volume using the newly create sysvg group: Again, like the swap but this will be used for my root file system. The size and name is up to you and make sure you point it to your VG that was created above. Create the home logical volume using the newly create sysvg group: Without getting into a lot of details, this will create a logical volume called ‘home’ using 100% of whats left on my VG. The percentage and name is up to you and make sure you point it to your VG that was created above. You do not need to use the rest of your disk space on home or any of the above created.
NOTE — Please use any of the above commands if you want to make a seperate LV for tmp, var, etc.
- View the create logical volumes: You don’t need to do this but it’s always nice to see the work as a whole. Display only your free space on your volume group: This is just important if you didn’t use the rest of the disk on a LV. This will show how much you have to expand current LV’s or create new ones at a later date. Build linux file systems for all newly created logical volumes: This will help the installation process know that each LV is selectable and usable as a partition point.
Ubuntu Installation
Now it’s time to get your computer set up. Double click on «Install Ubuntu 11.04» icon on the desktop and get where picture 1.0 is below:
picture 1.0
On the «Preparing to install Ubuntu» screen, you can select both «Download updates while installing» and «Install this third-party software» (this is optional). Now move to picture 1.1 for the next part:
picture 1.1
On the «Allocate drive space» screen, make sure you select ‘Something else’ before pressing the ‘Forward’ button. After you press the ‘Forward’ button, go to picture 1.2 for what you should see when manually setting up your partitions:
picture 1.2
The «Allocated drive space» should look different now showing you a list of your logical volumes and the /dev/sda partitions near the bottom. Scroll down the list to the bottom and highlight /dev/sda1 and press the «Change. » button. See picture 1.3 on what the change window should look like for /dev/sda1:
picture 1.3
The partition /dev/sda1 will be the /boot partition for your system and you can select whatever file system you wish (I would advise on ext4 or better). Now lets scroll up to the top and highlight the /dev/mapper/sysvg-lvhome partition that has the «ext4» next to it. Press the «Change. » button and see picture 1.4 for what this partition should look like:
picture 1.4
This will be the /home directory for my system using ext4. Again, the file system is your choice and doesn’t need to be ext4. Do this same process for /dev/mapper/sysvg-root and /dev/mapper/sysvg-lvswap by highlighting them and pressing the «Change. » button. See pictures 1.5 and picture 1.6 for what you should set up for both:
picture 1.5
picture 1.6
If you are all set up for your system to have all proper logical volumes, you press the «Install Now» button to start the installation process. This installation will ask for you additional information like your timezone, username, etc. please fill that in with what you want for your system. Once you are done, you can sit back and wait for the whole thing to comeplete. Once the installation process is complete, you will see picture 1.7 in front of you:
picture 1.7
Make sure you DO NOT PRESS «Restart Now». You want to press the «Continue Testing» so you can continue to step 7.
Install lvm2 onto your new Ubuntu Install
- Your system is almost ready to use LVM2 but the only problem is LVM2 isn’t a package that is installed by default (oh noes!!). To fix that we need to install it onto your newly set up Ubuntu instance. The commands below will help do this. Mount your system into /mnt/: We need to first mount your root file system to /mnt. Mounting your home file system probably isn’t necessary but doesn’t hurt to do. We do need your boot file system mounted to /mnt/boot to have this work so make sure you have at least your root and boot file systems mounted. Change your root to /mnt/ This command allows you to change your root file system so you can manage that new file system. Doing this will make any installations and changes perminant onto your changed root filesystem. Now that we are on your Ubuntu instance, you will noticed that you are now root and the symbole after ‘root@ubuntu:’ has changed to a #. That is a good thing as we are not on the live CD’s root file system but on your instance of Ubuntu. We will need to run the following command to allow your file system to boot into your LVM create partitions.
—OPTIONAL—
- Load LVM modules on startup
If you want some additional functionality once your system is set up, MarioSchmidtSoftware suggests running these commands below before you install the package lvm2 (not needed but wouldn’t hurt if you plan on using LVM for more then just the basics):
—OPTIONAL—
- Install LVM2 onto your chroot file system: Just like in step 3, we install lvm2 onto your instance of Ubuntu instead of the live instance. I want to point out some of the output that is import to why you need to install lvm2 onto your instance of Ubuntu: If you see this during your installation of lvm2, this means, in a nutshell, your initrd image will now be able to use LVM based partitions at startup. If lvm2 was not installed on your computer and you started to start it up, you computer would complain about not being able to find /dev/mapper/sysvg-lvroot and so on. Your computer is now set up with Ubuntu and logical volumes by using the Ubuntu Desktop image.
Источник
Live cd linux lvm
LVM — (Logical Volume Manager — менеджер логических дисков) средство гибкого управления дисковым пространством. Позволяет динамически менять размер логических разделов на лету, создавать снимки (снапшоты) и т.д.
Содержание
Дисклеймер/отмазка [ править ]
LVM это ОЧЕНЬ(. ) мощный инструмент, который требует аккуратного с собой обращения. Любая самодеятельность с ним может обернуться потерей всей(. ) информации на диске. Поэтому прежде, чем использовать LVM на рабочих машинах (и уж тем более на «боевых» серверах), следует потренироваться на кошках. Лучше всего это делать на виртуальных машинах. Начинать использовать LVM следует ТОЛЬКО (и только. ) тогда, как почувствуете уверенность и понимание принципов его работы.
Зачем нужен LVM [ править ]
Установка системы прямо на разделы диска зачастую приводит к следующей проблеме. Нужно каким-то образом «правильно» разбить жесткий диск. Слово «правильно» стоит в кавычках, потому что «правильного» разбиения диска для всех возможных ситуаций и применений не существует. В сети есть много советов по данному поводу, но они не учитывают потребностей конкретного пользователя (в случае настольной системы) или конкретного администратора (в случае сервера). Обычно рекомендуют разделы /home, /var, /usr, какие-то еще выносить на отдельные разделы диска. Но если разбивающий ошибется в размерах этих разделов, возникает очень нехорошая ситуация — на одних разделах место подходит к концу, в то время как на остальных места еще много. Приехали! Дисковое пространство нужно переразмечать. Для этого есть много способов:
1. Тотальный backup, затем переустановка системы с переразбиением диска. 2. Переразметка с помощью parted с риском потерять данные. 3. Изначальная установка системы на LVM, который позволяет изменять размеры своих разделов прямо на работающей системе.
Терминология [ править ]
LVM предусматривает три логических уровня работы с дисковым пространством:
1. Самый нижний — физические тома (physical volumes). Это собственно физические диски. Это могут быть диски целиком (/dev/sda, /dev/sdb и т.д.) или отдельные разделы (/dev/sda1, /dev/sdb5 и т.п.).
2. Группы томов — volume groups. В группы томов объединяются физические тома. Таким образом группы томов представляют собой пул дискового пространства, необходимый для следующего уровня. Группы томов могут иметь человеческие названия, говорящие администратору системы об их предназначении: system, sales, database и т.д.
3. Логические тома (logical volumes) — это аналог разделов физического диска и то, ради чего вообще существуют диски — именно на них хранятся данные. Пользователи (и процессы) системы работают только с логическими томами. Таким образом LVM создает для них всех слой абстракции, скрывая, с какими именно физическими дисками они в данный момент работают. Администратор системы может добавлять физические тома в LVM и удалять их из него (см. ниже), но процессы (и пользователи) об этом знать не будут.
Примечание по названиям утилит LVM [ править ]
Следует запомнить сразу — названия утилит для работы с разными уровнями LVM совпадают. Различие только в первых двух буквах этого названия. Это:
- pv* — для работы с физическими томами;
- vg* — для работы с группами томов;
- lv* — для работы с логическими томами.
Не стоит также пытаться зазубрить названия этих утилит и их ключи. Действовать стоит так:
1. Думаете, с каким уровнем LVM надо работать — физические тома, группы томов или логические тома.
2. Выбираете в зависимости от этого первые буквы названия: pv, vg или lv, соответственно.
3. Набираете их в консоли и нажимаете два раза TAB. Срабатывает автодополнение, которое показывает команды, начинающиеся с указанных букв.
4. Выбираете команду по ее названию, например, pvcreate для создания физических томов. Если вы ее запустите с ключом --help , она вам покажет все возможные ключи. За более подробной информацией стоит залезть в man конкретной команды.
По мере набора опыта работы с LVM нужда в такой последовательности отпадет. Необходимые команды и их опции запомнятся сами собой.
Создание [ править ]
Я буду рассматривать создание LVM на уже установленной системе. Знание терминологии и принципов работы с ним в дальнейшем позволит найти в инсталляторе нужные пункты для создания логических томов на этапе установки системы.
Первый этап — это создание правильных разделов. Это такие разделы, которые LVM признает за свои и сможет при загрузке их корректно инициализировать. В случае таблицы разделов MBR «родной» тип разделов для LVM — 8E «Linux LVM». В случае LVM версии 1 все, что будет дальше, не будет работать, если при создании разделов не указать приведенный корректный тип. Если используете таблицу разделов GPT, в parted задайте разделу флаг «lvm».
Вообще говоря, можно использовать в качестве физического тома неразмеченный диск. LVM2 распознаёт физические тома LVM по сигнатуре. Это сэкономит мегабайт на диске. Несмотря на это, имеет смысл создать таблицу разделов и в ней раздел с типом или флагом lvm, чтобы не ошибиться самому в дальнейшем: диск, целиком использованный для физического тома LVM, можно случайно принять за пустой. (Но всегда можно проверить это командой file -s /dev/sd? или pvscan.) Кроме того, если LVM используется в виртуальной машине, диск, полностью занятый PV LVM, будет виден программам LVM в хост-системе, что не всегда приемлемо.
Итак, создаем несколько разделов типа 8E с помощью любимого средства разбиения диска:
Еще раз. Пример я привожу с виртуальной машины, чего и вам советую на этапе обучения.
Я создал три раздела для работы с LVM. Сколько их создавать и какого размера решает сам администратор. Например, никто не мешает отдать целиком весь диск (/dev/sdb в данном случае) под власть LVM. В том, как это сейчас сделал я, смысла искать не стоит :). Мой пример преследует только цели демонстрации работы с LVM.
ВНИМАНИЕ! Форматировать созданные разделы НЕ надо! Иначе программа pvcreate откажется записывать свои метаданные на том.
Следующее, что мы должны сделать — это инициализировать созданные разделы как физические тома:
Если нет сообщений об ошибках, можно смело шагать вперед.
Следующий шаг — это создание группы томов. Делается это командой vgcreate (еще раз подчеркиваю похожесть названия утилит для работы с LVM). Самое трудное тут — это придумать имя группы томов, которое будет отражать ее назначение:
Аргументы vgcreate это название группы томов (fileserver) и те физические тома, которые мы включаем в эту группу. В данном случае я включил в нее только /dev/sdb1 и /dev/sdb5, что нам и покажет утилита pvscan:
Здесь мы видим созданные нами физические тома, их размер и к какой группе томов они относятся. Последний физический том (/dev/sdb6) у нас пока сам по себе. Для обнаружения наличия групп томов LVM (это нужно, например, если вы загрузились с Live CD, который не активирует LVM по умолчанию) есть аналогичная команда — vgscan:
Активировать неработающий LVM можно командой vgchange -ay:
Это все для того же примера с LiveCD. Сейчас это делать было не обязательно. Вывод приведенной команды показывает наличие отсутствия логических томов, значит сейчас самое время создать их :). Для создания логических томов используется команда lvcreate:
Вуаля! Вы только что создали свой первый логический том. Синтаксис команды прост до безобразия:
- ключ -L указывает размер создаваемого тома. Поддерживаются суффиксы K (килобайты), M (мегабайты), G (гигабайты).
- ключ -n указывает название для тома (samba в данном случае)
- последний аргумент fileserver указывает группу томов, в которой мы создаем логический том (теоретически, групп может быть несколько).
Что важно — логические тома именуются системой следующим образом: /dev/имя_группы_томов/имя_тома. В действительности это симлинк, удобный для адресации устройства — он ссылается на что-то вроде /dev/dm-11, номер в котором может отличаться после перезагрузки. Очевидно, что /dev/группа/том гораздо нагляднее и предупреждает ошибки.
В нашем примере это:
Одно только это — хороший аргумент для использования LVM. Ведь не надо помнить что находится на /dev/sda3, /dev/sdb5 и т. п. Имена логических томов имеют вполне человеческое название (если их правильно назвать).
Еще несколько замечаний. В группе томов можно создать столько томов, сколько будет нужно. Но не больше, чем есть дискового пространства в этой группе томов. Посмотреть, сколько его у нас есть (и самое главное сколько его еще осталось) можно командой vgdisplay:
Сейчас для нас тут самое ценное — это VG Size 952.00 MB (общий размер дискового пространства группы томов), Alloc PE / Size 75 / 300.00 MB (уже выделенное для создания логических томов дисковое пространство), Free PE / Size 163/652.00 MB (свободное и еще не распределенное дисковое пространство — наш резерв).
PE тут — это физические экстенты. Они представляют собой нечто вроде кусков дискового пространства, на которые LVM «нарезает» физические тома. Все размеры логических томов всегда содержат целое число этих физических экстентов и всегда кратны их размеру (как видно из приведенных цифр размер экстента — 4Мб).
Теперь созданный том можно отформатировать и примонтировать:
Как мы видим, наш логический том готов к использованию!
Увеличение логических томов [ править ]
Самая мощная возможность LVM — это то, что размеры логических томов можно менять на лету. Правда, чтобы их уменьшить, «полет» придется прервать (об этом ниже), а вот увеличение размеров томов — это практически безопасная операция.
Предположим, что нам перестало хватать места на нашем физическом томе /dev/fileserver/samba.
Последовательность действий такая:
1. Сначала нужно убедиться в наличии необходимого нам дискового пространства в группе томов. Делается это командой vgdisplay. Допустим, мы хотим добавить к нашему логическому тому еще 300 Мб. Как мы видим (см. вывод команды vgdisplay выше), у нас еще достаточно свободного места в группе.
2. Увеличиваем логический том командой lvextend:
Новый размер тома (ключ -L) можно указывать и в относительных единицах (как в примере), и в абсолютных.
3. Если мы теперь посмотрим на вывод команды df -h мы увидим, что пока ничего не изменилось:
несмотря на то, что lvscan показывает верный размер:
Это произошло потому, что мы увеличили размер логического тома, но пока «забыли» сказать об этом файловой системе, расположенной «этажом выше». Давайте же изменим размер файловой системы. Делается это командной resize2fs (для ext2/ext3/ext4) или resize_reiserfs для одноименной файловой системы:
Теперь все правильно:
Обратите внимание, что все показанное производилось на смонтированной файловой системе. То есть, все операции не требуют остановки серверов, приостановки работы пользователей и т.п.
Уменьшение логических томов [ править ]
Уменьшение размера логического тома уже не такая тривиальная операция. Она требует специального подхода, четкой последовательности действий и размонтирования файловой системы (по крайней мере на момент написания).
ВНИМАНИЕ! Шаги 2 и 3 очень часто путают местами, что приводит к потере данных, хранящихся на логическом томе.
Делается это все так:
1. Размонтируем файловую систему: umount /dev/fileserver/samba
2. Уменьшаем размер файловой системы. Для этого сначала сделаем проверку самой файловой системы. Утилита resize2fs не даст изменить размер до выполнения проверки. Конечно, у нее есть ключ -f, который заставит ее это сделать, но лучше перестраховаться и все-таки выполнить проверку:
3. ТОЛЬКО после корректного выполнения двух предыдущих шагов уменьшаем размер логического тома:
В качестве размера тома (ключ -L), как и в случае с lvextend можно указывать и абсолютные и относительные единицы. Здесь мы также видим страшное предупреждение о потере данных. Несмотря на это (если вы не используете тестовые версии программ), ваши данные будут в целости и сохранности (скорее всего 🙂 , 100% гарантии вам все равно никто не даст).
После этого монтируем файловую систему и смотрим что поменялось:
Итак, если вы все делаете в указанной последовательности, вашим данным скорее всего ничего не грозит. Но лучше перед уменьшением тома все-таки сделать его резервную копию. Я сам многократно уменьшал физические тома без каких-либо потерь данных, но наличие резервной копии — это наличие резервной копии :).
Увеличение и уменьшение группы томов [ править ]
Следующая возможность LVM — это возможность дополнять группу томов новыми физическими томами (например, если уже не хватает имеющихся) и выводить из группы не нужные больше физические тома (например, скорая поломка диска или замена оборудования). Лично я видел на форумах, что некоторые таким образом даже переносят работающую систему с одного диска на другой.
Давайте вернемся к нашему примеру. Допустим нам перестало хватать места в нашей группе томов и мы ее хотим дополнить новыми физическими томами. Делается это командой vgextend:
Как мы видим (выделено), пул дискового пространства, которым мы располагаем, увеличился. Теперь его тоже можно использовать для увеличения существующих логических томов данной группы и для создания новых.
Следующая операция, которую тоже можно делать с LVM — это уменьшение группы томов. Прежде чем вывести физический том из группы — его необходимо освободить от данных. Первое, что тут следует сделать в данном случае — это убедиться, что дискового пространства, которое останется в группе, хватит для размещения этих данных. Разработчики LVM пока не владеют методами размещения данных в астральном пространстве, но работа над этим ведется :). Итак, посмотреть это можно командой pvscan:
Здесь мы видим, что реально сейчас используется только первый физический том — /dev/sdb1. И еще мы тут видим один интересный аспект работы LVM: если какой-то логический том можно разместить на отдельном физическом целиком — LVM выберет именно этот путь. Кстати, под словом free команда pvscan подразумевает не свободное от данных пространство, а пространство не выделенное в логические тома. Итак, для освобождения физических томов от данных и размещения их на других физических томах той же группы есть команда pvmove:
По умолчанию данная программа требует только одного аргумента — имени освобождаемого тома. Также ей можно указать (вторым аргументом) имя тома, на который нужно поместить данные.
В случае, когда на физическом томе располагаются части зеркального логического тома, обязательно указывайте, на какой физический их нужно переместить, иначе может оказаться, что все «зеркала» окажутся на одном физическом томе.
Вывод команды pvscan теперь выглядит вот так:
Как мы видим, теперь наш логический том «уехал» на другой раздел диска. Причем этот том смонтирован и с ним в этот момент могут работать пользователи.
Убрать освобожденный том из группы можно командой vgreduce:
Теперь мы видим, что наш физический том /dev/sdb1 «осиротел» и больше не принадлежит ни одной группе.
Снапшоты/Снимки [ править ]
Следующая полезная возможность LVM — это снапшоты или снимки. Снимок — это как бы фотография дискового пространства оригинального тома. После выполнения снимка все изменения, происходящие на томе-оригинале, никак не видны на снимке. Все программы будут продолжать работать с оригинальным томом как ни в чем не бывало.
Сферы применения снапшотов могут быть самыми разнообразными. Например, резервное копирование базы данных. Если не использовать LVM — базу данных необходимо останавливать, копировать ее файлы куда-нибудь для последующего резервного копирования, а затем запускать ее заново. То есть делать это придется в нерабочее время. С LVM все проще — следует сделать снимок раздела с файлами базы данных и уже можно начинать делать резервную копию. Остановка базы данных не нужна, достаточно сделать блокировку всех баз на время создания снапшота (это несколько секунд).
Самая интересная особенность LVM при работе со снимками — это то, что снимок может занимать меньше дискового пространства, чем оригинал. Для этого используется режим Copy-on-Write, при котором реальное использование дискового пространства начинается только при изменении данных на томе-оригинале. То есть при попытке модификации блока на томе-оригинале неизменённый блок сначала сохраняется на томе-снимке, а уж затем модифицируется.
ВНИМАНИЕ! При заполнении тома-снимка до конца, происходит его уничтожение. То есть том продолжает существовать, но ни смонтировать его, ни просмотреть его содержимое (если он был смонтирован до этого) уже не получится. Эту особенность следует обязательно учитывать при задании размера тома-снимка в момент его создания.
Создание снимка делается хорошо известной командой lvcreate:
Ключ -s указывает, что создаем мы именно снапшот, -n указывает имя создаваемого тома, а /dev/fileserver/samba показывает с какого именно тома мы делаем снимок.
Команда lvscan покажет нам, что мы создали снапшот:
Теперь можете убедиться в том, что изменения, происходящие с оригиналом, никак не повлияют на снапшот.
Замена сбойного диска в RAID [ править ]
При сбое жесткого диска:
Один из способов, в замену сбойного диска, добавить в группу томов ещё одно устройство, по объёму не уступающему размеру зеркала:
Источник