Skip to content

Storage Systems

andyceo edited this page Jun 16, 2019 · 4 revisions

Системы хранения данных (СХД)

На каких устройствах размещаются данные Интерфейсы работы устройств Как строить RAID Управление емкостью - LVM

Какие системы хранения данных существуют

Ленточные накопители (перфокарты, магнитные ленты). Перфокарты ранее компьютеров использовались в связи.

Магнитный барабан - магнитный цилиндр. Возникли раньше магнитных дисков.

ТУ80 - перфокарта из СССР.

Накопитель на ферритовых сердечниках. У них довольно долго сохраняется остаточная намагниченность, и в течении нескольких месяцев можно считать информацию. В СССР было бытовое устройство, которое продавалось в магазинах, которое содержало в себе память на ферритовых сердечниках - программируемый калькулятор МК-52 (помещался в карман пиджака).

DEC - Digital Equipment Corporation - магнитные ленты. Компания была продана, часть - Compaq/HP, часть - Intel, сотрудник, разрабатывающий в Microsoft Windows NT, пришел из DEC, поговаривают, что он с собой чуть ли не исходные тексты принес. 10:28

Ленты от DEC дублировали иноформацию - один и тот же разряд дублировался в нескольких местах, и ленту можно было прочитать, даже если ее кололи дыроколом в каком-то месте. Также у них выпускались и компактные кассеты.

Современные СХД

Много разных типов накопителей: жесткий диск, флешка, компакт-диски, etc.

mrw-r--r--

Что означает m? m в современных юниксах практически не используется. Девушка из церн... этот атрибут файла, характеризует СХД. Если этот файл попытаться прочитать, то он прочитается, но спустя долгое время. Это т.н. мигрировавший файл. Бывают многоуровневые системы хранения, и на жестких дисках хранится метаинформация о файле, а сам он мигрировал в роботизироаннй ленточный архив, например.

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

С SSD - тоже многое завсиит от производителя. Есть диски, которые могут распараллеливать запросы внутри себя, и потому - быстрые.

С HDD - тоже есть проблема - если записать на него информацию и положить на полку, то, через несколько лет, он может и не включиться - некачественные радиокомпоненты, например. Идеальный режим работы жесткого диска - это когда он включен и не выключается, при этом у него должно быть надежное стабильное питание.

Оперативная память, кеш процессора, его регистры. С памятью основная проблема - транспорт от памяти до процессора.

Проблема с транспортом не только у памяти, но и у всех систем хранения.

  • IDE/ATAPI/AoE - система отдавала команду и ждала, пока диск ее выполнит, потом давала следующую. не было возможости у диска оптимизировать последовательность выполнения команд, а ведь он лучше знает, что и где у него хранится.
  • SCSI/.../Ultra-320 SCSI/iSCSI - попытка решить это. позиционировался как интерфей для серверов, может работать через Ethernet - iSCSI.
  • SATA/eSATA - eSATA - внешний интерфейс, быстрый.
  • SAS - выяснилось, что шлейф со многими проводниками (классический SCSI) - менее эффективен, чем шлейф с малым количеством проводников (уменьшается их взаимное влияние), поэтому Serial Attached SCSI (SAS) - следующая инкарнация SCSI.
  • Fibre Channel / FCoE - протокол, используется для подключения дисков, например есть стойка с несколькими дисками, она подключается через FC, и видится как один накопитель (или несколько). + оптический кабель. Есть возможность работать через Ethernet (FCoE).
  • InfiniBand - специфический интерфейс, выглядит как VGA-кабель - дельта-разьем, толстый кабель с несколькими проводниками, и с высокой пропускной способностью.
  • USB/IEEE 1394/ThunderBolt ... - USB 1/2/3 2-й USB - наиболее распространенный интерфейс. IEEE 1394 - также существует несколько версий. Thunderbolt - продвигает Intel, он пригоден не только для подключения систем хранения, но и видеоадаптеров, т.е. это универсальный интерфейс. Потому что на сегодняшний день протоколы передачи данных - не сигнальные, а цифровые. Почему? HDMI - ? во-первых, для того, чтобы исключить двойное преобразование, а во-вторых - чтобы можно было защитить авторский сигнал (шифровать надо видеопоток). Но ключ нашли.

Также см. http://en.wikipedia.org/wiki/List_of_device_bandwidths

Типы дополнительной памяти

  • DAS - Directed Attached Storage - устройство хранения, находится внутри компьютера. Протоколы - SATA, SAS, FC.

  • NAS - Network Attached Storage - подключили устройство хранения через сеть - на самом деле - файловый сервер. Компьютер оперирует понятиями файл, каталог. Протоколы - NFS, CIFS.

  • SAN - Storage Area Network - нечто среднее между первым и вторым, когда мы подключаем к компьютеру блоковые устройства (компьютер сам занимается распределением емкостью этого устройства). SAN видится как набор блоков - т.е. диск, но видимый по сети. Это может быть специализированоне устройство. Для этого нужен протокол iSCSI, например. Может выглядеть как полка, набиваемая ЖД. NAS и SAN - 2U корпуса, как правило, набиваемые дисками. Интерфейсы SAN:

    • ATA over Ethernet (AoE)
    • Fibre Channel Protocol (FCP)
    • Fibre Channel over Ethernet (FCoE)
    • iSCSI
    • InfiniBand
    • Fibre Channel

RAID

HDD vs SSD, запись/перезапись/уничтожение информации. Иногда SSD умирает так, что писать перестает, а читать - нет, поэтому это хорошо с точки зрения потери информации. Если нужно очень быстрое устройство хранения, то может ставится устройство, внутри которого оперативная память с батарейкой.

  • 0 - striping - чередование блоков, stripe - (англ.) лента (увеличение производительности, уменьшение надежности во столько же раз, сколько дисков.)
  • 1 - mirroring - зеркалирование. Одна и та же информация пишется на несколько дисков. (большая надежность, если контроллер или ОС распараллеливает чтение, то произойдет увеличение скорости чтения)
  • 2 - чередование битов с кодом Хэмминга (простейший случай помехоустойчивого кода, практически не встречается)
  • 3 - контрольный байт на отдельном диске - кодирование на уровне байтов
  • 4 - контрольный блок на отдельном диске - контрольные суммы, но контрольные суммы хранятся на отдельном физическом диске
  • 5 - контрольный блок (с чередованием) на одном из дисков - хранить контрольную сумму на разных дисках по очереди.
  • 6 - 2 контрольных блока (с чередованием) - два блока для контрольной суммы.

XOR

Рассчет контрольных сумм в RAID основан на функции суммирования по модулю 2, и просто - XOR. Она дает значение "истина", когда аргументы различны:

0 XOR 0 = 0 0 XOR 1 = 1 1 XOR 0 = 1 1 XOR 1 = 0

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

RAID работает на блочном уровне.

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

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

Matrix RAID: расположен на материнских платах Intel. Один и тот же диск может быть использован как для повышения производительности, и там строится RAID0, а вторая - для увеличения надежности, и там строится RAID 1 (на одном RAID - операционная система, которую можно переустановить, а на другом - важные данные). Также может быть построен программно.

Комбинированные RAID

Такие системы хороши для большого количества дисков. Например есть 12 дисков, если построить длинный RAID5 на них, не факт что это будет быстро - будут большие задержки на синхронизацию записи между этими дисками. Первая цифра - это RAID, который строится первым, т.е. 0+1 - зеркало из томов с чередованием.

  • 0+1 — зеркало из чередующихся томов: Берутся два диска, строится чередование (RAID 0), еще два диска - еще один RAID 0, и т.д. Затем из получившихся 6-и устройств, строим зеркало RAID 1 (получится 3 массива RAID-1). Эта система выдерживает сбой любого одного диска. Сбой двух и более дисков она выдержит, если эти диски оказались в разных RAID 0. 1:06:30
  • 1+0 — чередование зеркал. Встречается чаще, чем 0+1. Сначала строятся зеркала (RAID1), а потом на этих зеркалах строится том с чередованием. Нехорошо, если выйдут из строя сразу два диска внутри RAID1.
  • 5+1 — зеркало из массивов RAID5 - сначала строится несколько RAID5, а потом на них строится зеркало. RAID10 встречается чаще.

Аппаратные СХД сами умеют делить на группы, строить из групп какие-либо комбинации.

Реализация хранения в Linux

Система хранения работает с блоковыми устройствами. Это такие устройства, которые можно буферизовать (с точки зрения ядра).

  • Блоковые устройства: /dev/sda, /dev/sdb, ... Они так называются независимо от интерфейса диска: SATA, SCSI, IDE. В старые времена, IDE-устройства назывались /dev/hda. Есть подвижки так изменить эту нумерацию, чтобы в названии файла устройства был закодирован номер его контроллера, номер диска на этом контроллере.

  • Разбиение на разделы: /dev/sda1, /dev/sda2. Обычно диск не используют целиком, а разбивают на разделы. Даже если надо использовать весь, лучше разбить на раздел, т.к. в этом случае есть преимущество - в начале диска есть сигнатура разбиения. Поэтому разделы - это номера, приписанные после названия устройства. Пример:

    ls -l /dev/sd* brw-rw---- 1 root disk 8, 0 апр. 5 10:47 /dev/sda brw-rw---- 1 root disk 8, 1 апр. 5 10:47 /dev/sda1 brw-rw---- 1 root disk 8, 2 апр. 5 10:47 /dev/sda2 brw-rw---- 1 root disk 8, 5 апр. 5 10:47 /dev/sda5

    Буква b в самом начале строк указывает на то, что этот файл-блоковый, т.е. операции с ним можно буферизовать в кеш-буфере - вместо чтения одного байта, выполнить чтение 512 байт. Есть автоопределение устройств (udev), поэтому, когда вставляешь флешку, она сразу появляется в виде очередного /dev/sd* диска.

    Каждый файл устройства в линукс имеет два числа через запятую на том месте, где у обычных файлов - размер. В примере выше, это 8, 0, 8, 1 и т.д. Сравним со стандартным файлом в системе:

    ls -l /etc/passwd -rw-r--r-- 1 root root 2221 февр. 28 15:46 /etc/passwd

    У файла нет начальной буквы (стоит -), и нет никаких чисел через запятую, а указан размер. Файл устройства действительно не имеет размера - это просто запись в файловой системе. Эти два числа - это старший и младший номер. Если бы в примере выше был еще один диск, то мы бы увидели, что, скорее всего, у них бы совпадал старший номер - он идентифицирует драйвер устройства (в ядре есть таблица, где каждому драйверу соответствует свой старший номер), а младшие номера означают экземпляры устройств и имели бы разные диапазоны. Отсюда вытекает, что количество разделов устройства, с которыми можно работать, из-за этой схемы нумерации ограничено. Одному устройству, как правило, выделяется 16 младших номеров.

    Система разбиения на разделы, сама имеет ограничения. Посмотрим таблицу разделов на диске /dev/sda:

    sudo fdisk -l /dev/sda

    Диск /dev/sda: 55.0 Гб, 55021510656 байт 255 головок, 63 секторов/треков, 6689 цилиндров, всего 107463888 секторов Units = секторы of 1 * 512 = 512 bytes Размер сектора (логического/физического): 512 байт / 512 байт I/O size (minimum/optimal): 512 bytes / 512 bytes Идентификатор диска: 0x0004fc7e

    Устр-во Загр Начало Конец Блоки Id Система /dev/sda1 * 2048 103290879 51644416 83 Linux /dev/sda2 103292926 107462655 2084865 5 Расширенный /dev/sda5 103292928 107462655 2084864 82 Linux своп / Solaris

    В первых 512 байтах отведено всего 4 строчки, по смещению 446. Поэтому больше 4-х разделов в сам MBR не поместить, и поэтому используются расширенные разделы - 4-й раздел ссылается на структуру на диске, которая содержит дополнительные разделы. Она точно также в первых 512 байтах содержит MBR. Если первый MBR потеряется, то мы не знаем, где находится этот связный список из дополнительных разделов. Тогда приходится просматривать весь диск с помощью специальных программ, например, testdisk (также содержит программу photorec для поиска файлов определенной сигнатуры - ее придумали, чтобы восстанавливать фотки с флешки фотоаппарата, если ее MBR по каким-то причинам потерялся). testdisk умеет найти и восстановить этот связный список. Если вдруг программа ошибется, то вы потеряете сектор на диске, и надо создавать их резервную копию. Для этого служит программа sfdisk. Она может сделать дамп MBR в текстовом виде, который сама же сможет потом восстановить:

    sudo sfdisk -d /dev/sda Предупреждение: расширенный раздел не начинается на границе раздела. DOS и Linux будут интерпретировать содержимое по-своему.

    partition table of /dev/sda

    unit: sectors

    /dev/sda1 : start= 2048, size=103288832, Id=83, bootable /dev/sda2 : start=103292926, size= 4169730, Id= 5 /dev/sda3 : start= 0, size= 0, Id= 0 /dev/sda4 : start= 0, size= 0, Id= 0 /dev/sda5 : start=103292928, size= 4169728, Id=82

    • MBR
      • основные: 1,2,3,4
      • логические: 5,6,...,15
    • GPT: 1..128
    • ...

Можно использовать каждый раздел как отдельное блоковое устройство.

Программный RAID в Linux

  • mdadm
    • RAID 0, 1, 4, 5, 6, 10, multipath
  • mdadm --create --verbose /dev/md0 --level=linear --raid-devices=2 /dev/sdb6 /dev/sdc5
  • mkfs: Stride calculator

Реализация RAID находится в ядре Linux, а команда mdadm просто командует, что надо делать.

Дисковая полка с двумя контроллерами. В компьютере тоже два контроллера FiberChannel, например. И дальше операционной системе надо объянить, что она через два разных контроллера работает с одной полкой. Это объяснение и есть multipath. "Объяснение" multipath через mdadm - не единственный способ.

Демонстрация работы с RAID 1:22:00

# отсоединим ненужный раздел:
sudo umount /windows/

# закомментируем монтирование
sudo vi /etc/fstab

# запустим утилиту работы с диском
sudo fdisk /dev/sda
# посмотрим текущую таблицу разделов
> p
# удалим нужный раздел
> d
> 1
# выйдем из утилиты (ничего не запишется на данный момент)
> q

Какой-то из разделов будет помечен как загрузочный. Пометка раздела как загрузочного рассчитана на то, что в MBR лежит стандартный загрузчик, который просматривает все разделы, и дальше грузит 0-й сектор с помеченного раздела, и передает туда управление. Но если установлен grub в MBR, то этот атрибут не сильно важен (но grub может быть установлен в boot-сектор). Также, некоторые BIOS от Intel, читают MBR, и если не находят загрузочного раздела, не грузятся с этого диска. Они не могут распознать что в MBR лежит нормальный загрузчик.

# запустим утилиту работы с диском
sudo fdisk /dev/sda
# посмотрим текущую таблицу разделов
> p
# удалим нужный раздел
> d
> 2
# запишем изменения и выйдем
> w

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

# запустим утилиту работы с диском
sudo fdisk /dev/sda
# посмотрим текущую таблицу разделов
> p
# пометим загрузочным третий раздел
> a
> 3
# создадим еще один раздел(n), как расширенный (e), номер 4, начиная
# с цилиндра 24, используя все оставшееся место (Enter)
> n
> e
> 24
> Enter

fdisk действует в терминах цилиндров и секторов, это абстракция, которая не соответствует реальному размещению секторов на диске. (Раньше оптимизировали размещение данных по цилиндрам, т.к. при работе в пределах цилиндра, не надо было перемещать головки. В BIOS заложено, что в цилиндре только 63 дорожки, что уже давно не так).

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

# посмотрим таблицу разделов
> p
# создадим новый раздел (n), как логический (l), начиная
# с цилиндра 24, размером 512Mb
> n
> l
> 24
> +512M

+512M означает отсчитать от начала 512 мегабайт и так вычислить последний сектор раздела. Продолжим создание разделов:

> n
> l
> 90
> +512M

Еще один раздел:

> n
> l
> 156
> +512M

Последний раздел:

> n
> l
> 222
> +512M

Посмотрим, что получилось:

> p

Т.к. эти разделы предназначены для RAID, то можно их пометить соответствующим типом, тогда при загрузке, ядро, еще до запуска initrd, будет пытаться собрать RAID из этих разделов:

# зададим тип (t) для 8-го раздела, как RAID с автоматическим определением (fd)
> t
> 8
> fd

То же самое сделаем для разделов 7, 6, 5. Посмотрим что получилось и запишем:

> p
> w

Проблема с fdisk заключается в том, что он настолько старый, что не может корректно объяснить ядру, что произошли изменения в MBR. fdisk использует старый подход, который работает, если ядро не задействовало ни один раздел с этого диска. Поэтому при выходе из fdisk показывается предупреждение об этом. Посмотрим, что думает ядро о разделах диска:

cat /proc/partitions

И увидим, что ядро думает, что разделы не изменились. Перечитаем информацию о разделах для ядра (1:32:35):

sudo partprobe /dev/sda

Начнем собирать RAID. Сначала в отдельном терминале запустим команду слежения за RAID:

watch -n 1 cat /proc/mdstat

В другом терминале, выполним команду на создание массива RAID5, количество дисков 3, и 1 запасной:

sudo mdadm -C /dev/md0 -l 5 -n 3 -x 1 /dev/sda5 /dev/sda6 /dev/sda7 /dev/sda8

В нашем окне наблюдения за рейдом увидим сборку массива. Воспользуемся им:

sudo hexdump -C /dev/md0 | less

Скорее всего мы увидим случайный мусор там. Запишем файловую систему на наш массив:

sudo mkfs.ext4 /dev/md0

Примонтируем ее:

sudo /dev/md0 /windows/

Скопируем туда что-нибудь:

sudo cp /etc /windows

Если при монтировании файловой системы, не были разрешены расширенные атрибуты, то они при копировании будут потеряны.

Сымитируем развал массива и убедимся, что файлы по-прежнему читаются (1:39:30):

sudo mdadm /dev/md0 -f /dev/sda7

И поскольку есть диск горячей замены, то запускается ресинхронизация, и на запасной диск записывается сумма по модулю 2 от оставшихся дисков. Убедимся, что содержимое на месте:

sudo diff /etc/ /windows/etc/ -r

diff проверяет различия папок. diff может вывести предупреждение, если при копировании были скопированы символические ссылки, которые указывают на несуществующие файлы.

Теперь отключим "сбойный" диск:

sudo mdadm /dev/md0 -r /dev/sda7

Диск будет удален из рейда вообще. Добавим его обратно:

sudo mdadm /dev/md0 -s /dev/sda7

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

GPT, MBR - см. слайды

Недостатки разделов диска (1:41:31)

  • трудно увеличивать и уменьшать
  • должны быть непрерывными
  • привязаны к диску - неудобно переносить

Поэтому есть менеджер логических томов LVM2 (набор абстракций). Умеет строить простейшие рейды. По производительности мы ничего не выиграем у LVM-рейда по сравнению с обычным RAID, поэтому можно строить LVM на блоковых устройствах /dev/md0..9. Набор абстракций заключается в том, что мы строим разделы, как и в рейде.

Физические тома - группы - логические тома.

Группа состоит из блоков (экстентов), на физических томах (разделах) находятся экстенты. Экстенты (PE - Physical Extent) по умолчанию - 4 мб, но рекомендуется делать их больше, потому что их может быть не больше, чем 2^16 степени.

Созадим LVM на нашем рейде:

sudo pvdisplay
# ничего не выведет, т.к. еще LVM не использутся
sudo pvcreate /dev/md0
# создадим физический том LVM
sudo pvdisplay
# выведет информацию о вновь соданном физическом томе. PE Size у него будет нулевой, т.к. этот физический том пока не используется ни в одной группе

Суперблок у физического тома человекочитаемый:

sudo hexdump -C /dev/sd0 | less
# cможем найти PV GUID в открытом виде

Создадим группу томов:

sudo vgcreate kengavg0 /dev/md0

Рекомендуют называть группу томов, включая в название имя компьютера (в данном случае - kenga), чтобы, если будет перенос группы томов на другой компьютер, не возникло конфликта имен при присоединении к уже существующим группам. Посмотри снова на листинг физических томов (1:47:17):

sudo pvdisplay

Увидим, что размер экстента = 4Мб, а всего - 258 (или сколько у вас) штук получилось. Посмотрим группы:

sudo vgdisplay

Увидим, что есть группа, но что логических томов нету. Создадим логические тома:

sudo lvcreate -n data -L 256M kengavg0

Посмотрим на существующие логические диски:

sudo lvdisplay

Создадим там файловую систему:

sudo mkfs.ext4 /dev/kengavg0/data

Примонтируем ее:

sudo mount /dev/kengavg0/data /windows/

Скопируем туда данные:

sudo cp /etc /windows

Посмотрим сколько места свободно:

df -h /windows

Допустим, свободно 212 Мб. И этого стало мало. Увеличим место с помощью LVM, не прекращая работы и не отмонтируя файловую систему:

sudo lvextend -L 256M /dev/kengavg0/data

Размер логического тома был увеличен, посмотрим, сколько места на файловой системе:

df -h /windows

Там по-прежнему свободно 212 Мб. Увеличим саму файловую систему:

sudo resize2fs /dev/kengavg0/data

Посмотрим, сколько места образовалось на файловой системе:

df -h /windows

Увидим, что там сейчас свободно 414 Мб. Проверим, что данные никуда не потерялись:

sudo diff /etc/ /windows/etc/ -r

И мы видим, что только лишь изменилась информация о LVM в исходном каталоге /etc, т.к. LVM сохраняет резервную копию метаданных в каталоге /etc/lvm/backup. Если вы удалили случайно логический том, то его можно просто вернуть, указав из бекапа параметры старого тома. Попробуем откатить изменение размера логического тома:

sudo umount /dev/kengavg0/data
man lvm
# ищем тему vgcfgrestore

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

sudo fsck.ext4 -f /dev/kengavg0/data
sudo resize2fs /dev/kengavg0/data 256M

resize2fs умеет отмонтированую ФС уменьшить обратно. Если в конце присутствуют данные, то он делает их перенос (дефрагментацию). Теперь отменим изменение размера LVM-nома:

# покажет бекапы метаданных для группы kengavg0
sudo vgcfgrestore -l kengavg0

# восстановим состояние группы из файла бекапа
sudo vgcfgrestore -f /etc/lvm/archive/kengavg0_00006.vg kengavg0

# проверим результат
sudo lvdisplay

Увидим, что группа имеет один логический том, размером 256 Мб. Для верности проверим файловую систему:

sudo fsck.ext4 -f /dev/kengavg0/data

Примонтируем ФС обратно:

sudo mount /dev/kengavg0/data /windows/

Проверяем данные:

sudo diff /etc/ /windows/etc/ -r

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

Также LVM поддерживает:

  • Зеркалирование и чередование
  • Увеличение и уменьшение томов
  • Перенос между физическими дисками
  • Моментальные снимки для чтения и записи (можно создать такой файл устройства, в котором будет замороженное во времени состояние логического тома. Оно не будет меняться - и после этого можно спокойно делать резервное копирование. На низком уровне - отлавливается запись в замороженный раздел - источник, и перед записью старые значения блоков сохранить в снапшоте. Если у вас один снапшот, и изменений не сильно много, то поначалу задержки не очень чувствуются, а если у вас физически один жесткий диск, и вы создадите штук 5 снапшотов, выделите им достаточно места, чтобы хватало для сохранения копий старых блоков, и забудете на месяц, то через месяц машина встанет - все будет работать очень медленно, т.к. каждая запись будет сопровождаться операциями переадресации, и диск будет тратить много времени на поиски. Можно строить LVM на разных физических дисках, и можно для снапшотов указать конкретный физический том. Снапшот можно выключить (удалить), когда вы сделали действия над снапшотом - например, создали резервную копию. Еще есть возможность создать снапшот с ограниченным количеством блоков, чтобы их хватило только на некоторое время, и когда они заканчиваются, то снапшот автоматически выключается, с сообщением в журнал.)
  • Поддержка multipath

Команды LVM

  • pv(create|display|remove|resize|scan|move|...)
  • vg(create|change|display|scan|remove|rename...)
  • lv(create|display|extend|change|rename|...)

Например, vgscan позволяет просканировать диск на предмет наличия на нем LVM-разделов. Т.е. принес диск от другой машины, подключил, там LVM, и нужно его увидеть - утилита просмотрит разделы и можно будет присоединить тома.

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

  1. [Операционные системы](Operating Systems)

  2. Архитектура ЭВМ

  3. [Операционная система GNU/Linux: устройство и функционирование](GNU Linux)

  4. [Системы хранения данных](Storage Systems)

  5. Файловые системы

  6. Сети и протоколы

  7. Сети и протоколы. Виртуализация

  8. Безопасность информационных систем

Clone this wiki locally