Организация хранения данных
DESCRIPTION
В лекции рассматривались уровни RAID, их плюсы и минусы, а также LVM и как им пользоваться. Событие: https://vk.com/event68776013 Лектор: https://vk.com/vse_v_moei_golove Почитать: http://debian-help.ru/TRANSCRIPT
Организация хранения данных
Николай Мишин
01.04.2014
Память компьютера: классификация
Скорость работы
Стоимость
ОЗУ
Жесткие диски, SSD
Основная память
кэш ЦПУ
Дополнительная память
Дополнительная память
Минусы:- Медленная скорость работы. - Недолговечность.
Плюсы:- Относительная дешевизна.- Объем.
RAID (redundant array of independent disks — избыточный массив независимых дисков)
Служит для повышения надёжности хранения данных и/или для повышения скорости чтения/записи.
0 — striping — чередование блоков1 — mirroring — зеркалирование2 — чередование битов с кодом Хэмминга3 — контрольный байт на отдельном диске4 — контрольный блок на отдельном диске5 — контрольный блокна одном из дисков (с чередованием)6 — 2 контрольных блока (с чередованием)
RAID 0 дисковый массив из двух или более жёстких дисков без резервирования (т.е., по сути RAID-массивом не является). Информация разбивается на блоки данных фиксированной длины и записывается на оба/несколько дисков одновременно. (+)За счёт этого существенно повышается производительность (от количества дисков зависит кратность увеличения производительности).(-)Надёжность RAID 0 заведомо ниже надёжности любого из дисков в отдельности.
RAID 1 (mirroring — «зеркалирование») — массив из двух дисков, являющихся полными копиями друг друга. Не следует путать с массивами RAID 1+0, RAID 0+1 и RAID 10, в которых используется более двух дисков и более сложные механизмы зеркалирования.
Отказоустойчивый дисковый массив с использованием кода ХеммингаHamming Code ECC
RAID 2 - Отказоустойчивый дисковый массив с использованием кода Хемминга Hamming Code ECC.Массивы такого типа основаны на использовании кода Хемминга. Диски делятся на две группы: для данных и для кодов коррекции ошибок. Данные распределяются по дискам, предназначенным для хранения информации, так же, как и в RAID 0.Оставшиеся диски хранят коды коррекции ошибок, по которым в случае выхода какого-либо жёсткого диска из строя возможно восстановление информации. Метод Хемминга давно применяется в памяти типа ECC и позволяет на лету исправлять однократные и обнаруживать двукратные ошибки.Достоинством массива RAID 2 является повышение скорости дисковых операций по сравнению с производительностью одного диска.Недостатком массива RAID 2 является то, что минимальное количество дисков, при котором имеет смысл его использовать,— 7.
RAID 3 отказоустойчивый дисковый массив с параллельной передачей данных и четностью (Parallel Transfer Disks with Parity)
В массиве RAID 3 из n дисков данные разбиваются на куски размером меньше сектора (разбиваются на байты) и распределяются по n - 1 дискам. Ещё один диск используется для хранения блоков чётности.
Отличия RAID 3 от RAID 2: невозможность коррекции ошибок на лету и меньшая избыточность.
RAID 4 похож на RAID 3, но отличается от него тем, что данные разбиваются на блоки, а не на байты. Таким образом, удалось отчасти «победить» проблему низкой скорости передачи данных небольшого объёма. Запись же производится медленно из-за того, что чётность для блока генерируется при записи и записывается на единственный диск.
RAID 5 Отказоустойчивый массив независимых дисков с распределенной четностью.
Основным недостатком уровней RAID от 2-го до 4-го является невозможность производить параллельные операции записи, так как для хранения информации о чётности используется отдельный контрольный диск.
Получил широкое распространение, в первую очередь, благодаря своей экономичности.
RAID 6 Отказоустойчивый массив независимых дисков с двумя независимыми распределенными схемами четности.
RAID 6 — похож на RAID 5, но имеет более высокую степень надёжности — под контрольные суммы выделяется ёмкость 2-х дисков, рассчитываются 2 суммы по разным алгоритмам.
Для организации массива требуется минимум 4 диска.
XOR - Сложение по модулю 2
0 XOR 0 = 00 XOR 1 = 11 XOR 0 = 11 XOR 1 = 0
Пример
Drive #1: 00101010 (Data)Drive #2: 10001110 (Data)Drive #3: 11110111 (Data)Drive #4: 10110101 (Data)Drive #5: -------- (Hot spare)Drive #6: -------- (Parity)
Пример
Drive #1: 00101010 (Data)Drive #2: 10001110 (Data)Drive #3: 11110111 (Data)Drive #4: 10110101 (Data)Drive #5: -------- (Hot spare)Drive #6: 11100110 (Parity)
Пример
Drive #1: 00101010 (Data)Drive #2: 10001110 (Data)Drive #3: --Dead-- (Data)Drive #4: 10110101 (Data)Drive #5: -------- (Hot spare)Drive #6: 11100110 (Parity)
*SCT Error Recovery Control
Пример
Drive #1: 00101010 (Data)Drive #2: 10001110 (Data)Drive #3: --Dead-- (Data)Drive #4: 10110101 (Data)Drive #5: 11110111 (Hot spare)Drive #6: 11100110 (Parity)
SCT Error Recovery ControlУправления поведением диска при ошибках называется: SCT ERC. Это расшифровывается как SCT Error Recovery Control. SCT в свою очередь название общего протокола SMART Command Transport.Посмотреть, поддерживает ли жёсткий диск управление ошибками можно с помощью команды smartctl -a /dev/sdxx строчка SCT capabilities:
SCT capabilities: (0x303f) SCT Status supported.SCT Error Recovery Control supported. *****SCT Feature Control supported.
Если строчки нет — диск их (команды) не поддерживает.
Комбинированные уровни RAID
Помимо базовых уровней RAID 0 - RAID 6, существуют комбинированные уровни с названиями вида «RAID α+β» или «RAID αβ», что обычно означает «RAID β, составленный из нескольких RAID α» (иногда производители интерпретируют это по-своему).Например:● RAID 10 (или 1+0) — это RAID 0, составленный из нескольких (или
хотя бы двух) RAID 1 (зеркалированных пар).● RAID 51 — RAID 1, зеркалирующий два RAID 5 .
RAID 1+0 — чередование зеркал.
Эта архитектура представляет собой массив типа RAID 0, сегментами которого вместо отдельных дисков являются массивы RAID 1.
RAID 10 объединяет в себе высокую отказоустойчивость и производительность.Для данного уровня RAID возможно сохранение целостности данных при выходе из строя половины дисков *
Программный RAID в Linux
mdadm– RAID 0, 1, 4, 5, 6, 10
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sd[ab]1 cat /proc/mdstatmkfs.ext4 /dev/md0
Реализация хранения в LinuxБлоковые устройства: /dev/sda, /dev/sdb, …Разбиение на разделы: /dev/sda1, /dev/sda2Монтирование разделов: /etc/fstabмонтировать можно по:- имени устройства /dev/sda1, /dev/sda2- по UUID (уникальный идентификатор устройства)# blkid /dev/hda6 /dev/hda6: UUID="3e6be9de-8139-11d1-9106-a43f08d823a6" TYPE="ext2"- по метке # e2label /dev/hda6 BACKUPDISK
Недостатки разделов
Трудно увеличивать и уменьшатьДолжны быть непрерывнымиПривязаны к диску — неудобно переносить
Менеджер логических томов LVM2
Возможности LVM:● Зеркалирование и чередование● Увеличение и уменьшение томов● Перенос между физическими дисками● Моментальные снимки для чтения и записи
Терминология
sda1 sda2 sdb sdc <-- PV, Physical volume, физический том. | | | | | | | | +--------+- VG00 -+-------+ <-- VG, Volume group, группа томов. | +-------+--------+-----------+ | | | |root usr home var <-- LV, Logical volume, логический том. | | | | ext3 reiserfs reiserfs xfs <-- Файловые системы
Ссылки
RAID wikipedia
LVM xgu.ru
Яндекс лекция: Системы хранения данныхSCT Error Recovery Control