Помогите разобраться с разделом dev/mapper
Доброго времени суток! Помогите понять как в моей системе настроен раздел /dev/mapper/isw_cbhedgfjcb_Volume1. Небольшая предистория: на материнской (Gigabyte z170x Gaming 5) плате есть поддержка RAID. Перед установкой системы я настроил RAID 1 на 2ух дисках HDD по 1Tb (диск идентичные), а саму систему решил поставить на SDD. Загрузился с Live CD, установил систему, но она не загрузилась, пришлось поменять настройки SATA контроллера в BIOS с режима RAID на режим AHCI. После изменения настроек система загрузилась.
fdisk выдает следующее:
tolik@PC:~ > sudo fdisk -l
Диск /dev/sda: 256.1 Гб, 256060514304 байт 255 головок, 63 секторов/треков, 31130 цилиндров, всего 500118192 секторов Units = секторы of 1 * 512 = 512 bytes Размер сектора (логического/физического): 512 байт / 512 байт I/O size (minimum/optimal): 512 bytes / 512 bytes Идентификатор диска: 0x232dcb17
Устр-во Загр Начало Конец Блоки Id Система /dev/sda1 2048 260098047 130048000 83 Linux /dev/sda2 * 260098048 466464767 103183360 7 HPFS/NTFS/exFAT /dev/sda3 466669566 500117503 16723969 5 Расширенный /dev/sda5 466669568 500117503 16723968 82 Linux своп / Solaris
Диск /dev/sdb: 1000.2 Гб, 1000204886016 байт 255 головок, 63 секторов/треков, 121601 цилиндров, всего 1953525168 секторов Units = секторы of 1 * 512 = 512 bytes Размер сектора (логического/физического): 512 байт / 4096 байт I/O size (minimum/optimal): 4096 bytes / 4096 bytes Идентификатор диска: 0x000bd921
Устр-во Загр Начало Конец Блоки Id Система /dev/sdb1 2048 1062715391 531356672 83 Linux /dev/sdb2 1062715392 1952290815 444787712 7 HPFS/NTFS/exFAT
Диск /dev/sdc: 1000.2 Гб, 1000204886016 байт 255 головок, 63 секторов/треков, 121601 цилиндров, всего 1953525168 секторов Units = секторы of 1 * 512 = 512 bytes Размер сектора (логического/физического): 512 байт / 4096 байт I/O size (minimum/optimal): 4096 bytes / 4096 bytes Идентификатор диска: 0x000bd921
Устр-во Загр Начало Конец Блоки Id Система /dev/sdc1 2048 1062715391 531356672 83 Linux /dev/sdc2 1062715392 1952290815 444787712 7 HPFS/NTFS/exFAT
Диск /dev/mapper/isw_cbhedgfjcb_Volume1: 1000.2 Гб, 1000202178560 байт 255 головок, 63 секторов/треков, 121600 цилиндров, всего 1953519880 секторов Units = секторы of 1 * 512 = 512 bytes Размер сектора (логического/физического): 512 байт / 4096 байт I/O size (minimum/optimal): 4096 bytes / 4096 bytes Идентификатор диска: 0x000bd921
Устр-во Загр Начало Конец Блоки Id Система /dev/mapper/isw_cbhedgfjcb_Volume1p1 2048 1062715391 531356672 83 Linux /dev/mapper/isw_cbhedgfjcb_Volume1p2 1062715392 1952290815 444787712 7 HPFS/NTFS/exFAT
Диск /dev/mapper/isw_cbhedgfjcb_Volume1p1: 544.1 Гб, 544109232128 байт 255 головок, 63 секторов/треков, 66150 цилиндров, всего 1062713344 секторов Units = секторы of 1 * 512 = 512 bytes Размер сектора (логического/физического): 512 байт / 4096 байт I/O size (minimum/optimal): 4096 bytes / 4096 bytes Идентификатор диска: 0x00000000
На диске /dev/mapper/isw_cbhedgfjcb_Volume1p1 отсутствует верная таблица разделов
Диск /dev/mapper/isw_cbhedgfjcb_Volume1p2: 455.5 Гб, 455462617088 байт 255 головок, 63 секторов/треков, 55373 цилиндров, всего 889575424 секторов Units = секторы of 1 * 512 = 512 bytes Размер сектора (логического/физического): 512 байт / 4096 байт I/O size (minimum/optimal): 4096 bytes / 4096 bytes Идентификатор диска: 0x2052474d
Это не похоже на таблицу разделов Возможно, вы выбрали неверное устройство.
Устр-во Загр Начало Конец Блоки Id Система /dev/mapper/isw_cbhedgfjcb_Volume1p2p1 ? 6579571 1924427647 958924038+ 70 DiskSecure Multi-Boot Раздел 1 начинается не на границе физического сектора. /dev/mapper/isw_cbhedgfjcb_Volume1p2p2 ? 1953251627 3771827541 909287957+ 43 Неизвестный Раздел 2 начинается не на границе физического сектора. /dev/mapper/isw_cbhedgfjcb_Volume1p2p3 ? 225735265 225735274 5 72 Неизвестный Раздел 3 начинается не на границе физического сектора. /dev/mapper/isw_cbhedgfjcb_Volume1p2p4 2642411520 2642463409 25945 0 Пустой
Пункты таблицы разделов расположены не в дисковом порядке
у меня остались непонятки как все-таки настроен раздел из двух дисков — что это — LVM? или софтовый RAID?
Приложение A. Device Mapper
Device Mapper — драйвер ядра, реализующий основную инфраструктуру для управления томами. Он позволяет создавать проекции устройств, которые могут использоваться в качестве логических томов. Device Mapper не обладает информацией о группах томов и форматах метаданных.
Device Mapper служит основой для некоторых технологий высокого уровня и активно используется командами dmraid и dm-multipath .
Device Mapper используется для активации логических томов. Логический том преобразуется в проецируемое устройство, а каждому сегменту будет соответствовать строка с таблице соответствий. Device Mapper поддерживает прямое проецирование, проецирование с чередованием или проецирование с учетом ошибок. Так, два диска могут быть объединены в один логический том с двумя линейными соответствиями — по одному на диск. При создании тома LVM будет также создана проекция, для обращения к которой используется dmsetup . Раздел A.1, «Таблица соответствий» содержит описание форматов устройств в таблице соответствий, а Раздел A.2, «dmsetup» предоставляет информацию об dmsetup .
A.1. Таблица соответствий
Проекции устройств определяются в таблице, которая содержит соответствия для диапазонов логических секторов. Формат строк в таблице:
начало длина проекция
[параметры.
]
Параметр начало обычно равен 0. Сумма параметров начало и длина в одной строке должна быть равна величине начало в следующей строке. Параметры зависят от типа проекции .
Размеры указываются в секторах (размер сектора — 512 байт).
Если в параметрах проецирования указано устройство, в файловой системе к нему можно обращаться и по имени (например, /dev/hda ), и по номеру в формате основной : вспомогательный .
Пример таблицы соответствий, в которой определены 4 линейные составляющие:
0 35258368 linear 8:48 65920 35258368 35258368 linear 8:32 65920 70516736 17694720 linear 8:16 17694976 88211456 17694720 linear 8:16 256
Первые два параметра обозначают начальный блок и длину сегмента. Следующий параметр определяет тип проецирования ( linear ).
Device-mapper и DM-multipath
В статье про настройку iSCSI LUN на NetApp была затронута тема многоканальности (multipathing). Напомню, что это побочное явления использования нескольких физических каналов между целевым сетевым хранилищем данных (СХД) и сервером-инициатором, свойственное всем блочным протоколам. При наличии нескольких путей до инициатора, презентованный ему LUN (Logical Unit Number) будет виден столько раз, сколько существует путей. Поэтому прибегают к помощи вспомогательных средств для группирования всех этих «фантомных» LUN в единственный. В Windows это делается средствами MPIO, в Linux – демоном multipathd, который является компонентом device-mapper, именно о последних двух и пойдет речь в данной статье.
Device-Mapper
Device-mapper является частью ядра Linux, и основным его назначением является трансляция (mapping) одного блочного устройства в другое. На основе device-mapper строятся такие системы как LVM2, софтовый RAID и др. Device-mapper представляет некое «виртуальное» блочное устройство, и все данные, которые проходят через него, он посылает на другое, уже «реальное» блочное устройство.
Это виртуальное блочное устройство представляет собой таблицу, в которой описывается проброс каждого логического блока этого устройства на реальные физические блочные устройства.
При ссылке на «реальное» блочное устройство DM может использовать как его имя, отображаемое в файловой системе (/dev/sda), так и старший (major) и младший (minor) номера устройства в формате major:minor.
Общий вид строки в таблице преобразования:
start length type device offset
- start – начальный блок виртуального устройства
- length – длина сегмента
- type – тип преобразования. Бывают: linear, striped (позволяет пробрасывать виртуальное устройство на несколько физических), mirror, snapshot (используется для создания снимка тома диска), error, zero, multipath, crypt
- device – название физического устройства
- offset – отступ в физическом устройстве
Пример строки линейного преобразования с 0-го блока виртуального устройства, сегмента длиною 1638400 в физическое устройство со старшим номером 8, младшим номером 2 и отступом на нем в 41146992.
0 16384000 linear 8:2 41156992
В зависимости от типа преобразования в строке могут появляться дополнительные параметры.
При создании снимка тома диска средствами LVM используются четыре устройства Device Mapper:
- Устройство с linear-типом, хранящее первоначальную таблицу преобразования тома.
- Устройство с linear-типом для использования в качестве Copy-on-Write устройства – перед каждой записью на том, первоначальные данные будут сохраняться на CoW устройстве.
- Устройство со snapshot-типом хранящую таблицу преобразования из комбинаций первого и второго устройств и видного, как снимок, тома.
- «Первоначальный» том (использующий номер устройства первоначального тома источника) чья таблица преобразования заменяется на «snapshot-mapping» из первого устройства.
Пример создания LVM тома BASE и snapshot-подтома SNAP на этом томе
lvcreate -L 1G -n base volumeGroup lvcreate -L 100M --snapshot -n snap volumeGroup/base
Что в свою очередь создает четыре устройства, которые можно посмотреть
dmsetup table|grep volumeGroup volumeGroup-base-real: 0 2097152 linear 8:19 384 volumeGroup-snap-cow: 0 204800 linear 8:19 2097536 volumeGroup-snap: 0 2097152 snapshot 254:11 254:12 P 16 volumeGroup-base: 0 2097152 snapshot-origin 254:11
ls -lL /dev/mapper/volumeGroup-* brw------- 1 root root 254, 11 29 ago 18:15 /dev/mapper/volumeGroup-base-real brw------- 1 root root 254, 12 29 ago 18:15 /dev/mapper/volumeGroup-snap-cow brw------- 1 root root 254, 13 29 ago 18:15 /dev/mapper/volumeGroup-snap brw------- 1 root root 254, 10 29 ago 18:14 /dev/mapper/volumeGroup-base
Device-Mapper Multipath
Device mapper multipath (DM-Multipath) позволяет сгруппировать несколько путей между сервером и хранилищем (multipathing — многоканальность) в одно устройство.
При настройке активный/пассивный многоканальность позволяет избежать прерывания в работе при выходе из строя одного из путей (кабеля, свитча, контроллера). В этом режиме используется только половина путей.
При настройке активный/активный задействуются все доступные пути по карусельному алгоритму
Идентификаторы многоканальных устройств
Каждой многоканальное устройство (СХД) имеет т.н. World Wide Identifier (WWID), уникальный глобальный идентификатор. На его основании и делается предположение, о единстве LUN, доступного по множеству путей.
Например, сервер с двумя HBA (адаптер для подключения к FC сети) подключенный через FC свитч к СХД с двумя портами, при презентации ему одного LUN на этой СХД увидит четыре устройства: /dev/sda, /dev/sdb, dev/sdc, and /dev/sdd. DM-Multipath создаст одно «виртуальное» устройство с уникальным WWID.
Создаваемые DM-Multipath «виртуальные» устройства находятся в двух местах:
- /dev/mapper – каталог, используемый непосредственно для создания логических томов;
- /dev/dm-n устройства, используемые системой для внутренних нужд.
После создания виртуальных устройств средствами DM-Multipath можно приступить к созданию физических томов LVM (Physical volume LVM). Стоить отметить, что использование LVM необязательно и можно форматировать виртуальные устройства fdisk’ом, но это крайне не рекомендуется, т.к. внесет еще большую сумятицу.
RedHat отмечает, что для создания физических томов LVM на диске не должно быть разделов.
При создании логических томов LVM (Logical volume LVM) на СХД, подключенных несколькими путями по схеме активный/пассивный необходимо отредактировать файл настроек LVM (/etc/lvm.conf) для исключения дисков на которые ссылаются «виртуальные» устройства, созданные DM-Pathing. Чтобы это сделать, достаточно внести фильтр все SCSI устройств в файл lvm.conf:
filter = [ "r/block/", "r/disk/", "r/sd.*/", "a/.*/" ]
Компоненты DM-Multipath
- dm_multipath – модуль ядра
- mpathconf – утилита для настройки многоканальности
- multipath – утилита для отображения и настройки многоканальных устройств
- multipathd – демон, следящий за доступностью путей
- kpartx – утилита создает «виртуальные» устройства для DOS-разделов
Процесс подготовки DM-Multipath на RedHat/CentOS
- Установка device-mapper-multipath пакета.
- Изменение настроек по умолчанию в файле /etc/multipath.conf на необходимые. По умолчанию DM-Multipath включает в себя настройки для большинства СХД таким образом, что при его работе виртуальные устройства будут называться опознаваемо.
- Запуск демона multipathd
Установка и настройка Device Mapper Multipath для NetApp
- Проверяем наличие установленных пакетов DM и DM-Multipath
rpm -q device-mapper rpm -q device-mapper-multipath
- blacklist – список игнорируемых устройств (по wwid и/или по имени устройства (devnode))
- blacklist_exceptions – список исключений из списка игнора
- defaults – общие настройки
- multipaths – список устройств с особыми настройками (имеет приоритет над defaults и devices)
- devices – настройки отдельных СХД с подсекциями для каждой из них (имеет приоритет над defaults)
Примеры multipath.conf для NetApp и RedHat различных версий
- RedHat 6 with ALUA
defaults user_friendly_names no
max_fds max
flush_on_last_del yes
queue_without_daemon no
>
blacklist devnode «^hd[a-z]»
devnode «^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*»
devnode «^cciss.*»
>
devices device vendor «NETAPP»
product «LUN»
path_grouping_policy group_by_prio
features «1 queue_if_no_path»
prio «alua»
path_checker directio
failback immediate
path_selector «round-robin 0»
hardware_handler «1 alua»
rr_weight uniform
rr_min_io 128
getuid_callout «/lib/udev/scsi_id -g -u -d /dev/%n»
>
> - RedHat 5 Update 7 with ALUA
defaults user_friendly_names no
queue_without_daemon no
flush_on_last_del yes
max_fds max
pg_prio_calc avg
>
blacklist devnode «^hd[a-z]»
devnode «^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*»
devnode «^cciss.*»
>
devices device vendor «NETAPP»
product «LUN»
path_grouping_policy group_by_prio
features «1 queue_if_no_path»
prio_callout «/sbin/mpath_prio_alua /dev/%n»
path_checker directio
path_selector «round-robin 0»
failback immediate
hardware_handler «1 alua»
rr_weight uniform
rr_min_io 128
getuid_callout «/sbin/scsi_id -g -u -s /block/%n»
>
> - RedHat 5 Update 7 without ALUA
defaults user_friendly_names no
queue_without_daemon no
flush_on_last_del yes
max_fds max
pg_prio_calc avg
>
blacklist devnode «^hd[a-z]»
devnode «^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*»
devnode «^cciss.*»
>
devices device vendor «NETAPP»
product «LUN»
path_grouping_policy group_by_prio
features «1 queue_if_no_path»
prio_callout «/sbin/mpath_prio_ontap /dev/%n»
path_checker directio
path_selector «round-robin 0»
failback immediate
hardware_handler «0»
rr_weight uniform
rr_min_io 128
getuid_callout «/sbin/scsi_id -g -u -s /block/%n»
>
>
Примечания к файлу multipath.conf:
В NetApp ALUA используется: для Cluster-Mode на протоколах FC, FCoE и iSCSI, для 7-Mode на протоколах FC и FCoE.
Соответственно, в зависимости от того, поддерживается ли ALUA, устанавливаем (на RedHat 6)
modprobe dm-multipath
/etc/init.d/multipathd start
multipath -v2
cat /sys/block/sdX/device/vendor
cat /sys/block/sdX/device/model
dmsetup ls --target=multipath
multipath -ll
pvcreate /dev/mapper/
vgcreate VG01 /dev/mapper/
lvcreate -L 25G -n LV01 VG01
mkfs.ext3 /dev/VG01/LV01
Введение в LVM
физические тома:
Это ваши физические диски или разделы диска, такие как /dev/hda или /dev/hdb1
Это то, что вы привыкли использовать при mount/umount
Используя LVM, мы можем объединить несколько физических томов в группы томов
логические тома:
Это тома, которые вы в конечном итоге подключите к своей системе
Их можно добавлять, удалять и изменять размер на лету
Поскольку они содержатся в группах томов, они могут быть больше любого физического тома, который у вас может быть
(т. е. диски 4×5 ГБ можно объединить в одну группу томов по 20 ГБ, а затем можно создать два логических тома по 10 ГБ)
группы томов:
Группа томов состоит из физических томов, представляет собой хранилище, используемое для создания логических томов
Логическим томам можно создавать/изменять размер/удалять и использовать
Можно рассматривать группу томов как «виртуальный раздел», состоящий из произвольного числа физических томов
Установка утилиты:
apt-get update && apt-get install lvm2
1. Инициализация устройств
Инициализация устройств (в примере md0):
pvcreate /dev/md0 /dev/md1
Проверим вывод:
pvscan
pvdisplay
2. Создание группы томов
После того, как мы инициализируем разделы или диски, мы создадим группу томов, которая состоит из них:
vgcreate vol_group_name /dev/md0 /dev/md1
Если вы сделали это правильно, вы сможете увидеть его в выводе:
vgscan
3. Создание логических томов
Создайте свой первый логический том:
lvcreate -n data —size 300g vol_group_name
Ваш новый логический том будет доступен через:
/dev/vol_group_name/data
Или
/dev/mapper/vol_group_name-data
4. Операции с томами
Создать файловую систему:
mkfs.ext4 /dev/vol_group_name/data
Примонтировать логический том:
mount /dev/vol_group_name/data /mnt/
Показать созданные объемы и их размеры:
lvdisplay
Расширить объем:
lvextend -L+10g /dev/vol_group_name/data
После изменения размера вы должны изменить размер файловой системы:
e2fsck -f /dev/vol_group_name/data
resize2fs /dev/vol_group_name/data
Удалить том:
lvremove /dev/vol_group_name/data
Если вам нужна визуальная помощь, вы можете использовать утилиту «system-config-lvm» для настройки LVM
LVM Stripe
Во-первых, это своего рода RAID0
Если нужен один большой раздел, а есть только несколько меньших дисков
То есть возможность распределить LVM-Stripe по всем вашим меньшим дискам
В этом примере у меня есть 4 устройства 4TiB, которые будут использоваться для создания одного устройства с 16TiB
pvcreate /dev/sdb /dev/sdc /dev/sde /dev/sdd
vgdisplay to verify
lvcreate -l 100%FREE -n storage backups
lvdisplay
Создайте файловую систему на вашем устройстве 16TiB:
mkfs.xfs -L storage /dev/mapper/storage-bacula