Оригинал статьи - http://www.qdesnic.ru/page/soft-raid-v1.html
Автор: Олег Бобылев (QDesnic)
Организация отказоустойчивой системы хранения данных — это, естественно, RAID. Стоит дать некоторое определение RAID: избыточный (резервный) массив собранный из независимых дисков. Полное описание классификации RAID массивов можно посмотреть на «Википедия». Рассматривая возможности покупки аппаратных RAID массивов, всегда приходится сталкиваться с достаточно высокой ценой. Однако, при выборе хранилища данных можно рассмотреть и другие альтернативы. Так, например, одно из возможных решений может быть реализовано на Linux (Debian) с применением недорогих комплектующих. Вот такое решение программного RAID массива мы сегодня и рассмотрим.
Постановка задачи:
Условия:
Условия, которые мы поставили вполне выполнимы если мы будем использовать программный RAID массив. Для решения этой задачи не требуется высокопроизводительного и дорогостоящего оборудования, а также платного программного обеспечения.
Решение:
Подготовка завершена, можно приступать к реализации нашего плана. Утилита отвечающая за создание и обслуживание дисковых массивов называется mdadm. Поищем её в репозитариях Debian или Ubuntu
[user]$sudo su
[root]#aptitude search mdadm
p mdadm - tool to administer Linux MD arrays (software RAID)
Установим ее и приступим к «творению».
[root]#aptitude install mdadm
Во время установки система попросит параметры для обслуживания уже установленных массивов или для будущих. Чтобы не заморачиваться оставьте предложенные параметры по-умолчанию (all). Далее необходимо подготовить жёсткие диски для соединения в массив, определимся, что будем использовать массив класса RAID 1. Один из наиболее надежных (полное зеркалирование) и не дорогое решение.
[root]#fdisk -l
fdisk -l
Disk /dev/hda: 64.4 GB, 64424509440 bytes
255 heads, 63 sectors/track, 7832 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x000d1626
Device Boot Start End Blocks Id System
/dev/hda1 * 1 34 273073+ 83 Linux
/dev/hda2 35 7832 62637435 5 Extended
/dev/hda5 35 642 4883728+ 83 Linux
/dev/hda6 643 1007 2931831 83 Linux
/dev/hda7 1008 1195 1510078+ 82 Linux swap / Solaris
/dev/hda8 1196 1244 393561 83 Linux
/dev/hda9 1245 7832 52918078+ 83 Linux
Disk /dev/hdb: 21.4 GB, 21474836480 bytes
16 heads, 63 sectors/track, 41610 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Disk identifier: 0x00000000
Disk /dev/hdb doesn't contain a valid partition table
Disk /dev/hdd: 21.4 GB, 21474836480 bytes
16 heads, 63 sectors/track, 41610 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Disk identifier: 0x00000000
Disk /dev/hdd doesn't contain a valid partition table
В тестовом варианте системы я использую виртуальную машину. Как видно из информации об установленных дисках, у нас имеется два одинаковых жестких диска объемом 21,4Gb (не размечены) - /dev/hdb и /dev/hdd. Разметку можно провести утилитами cfdisk или fdisk. Для наглядности я буду использовать fdisk. В качестве параметров к fdisk указываем устройство с которым будем работать /dev/hdb. Ответы на вопросы системы я буду помечать красным жирным текстом.
[root]#fdisk /dev/hdb
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-41610, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-41610, default 41610):
Using default value 41610
Раздел у нас создан. Посмотрим его параметры.
Command (m for help): p
Disk /dev/hdb: 21.4 GB, 21474836480 bytes
16 heads, 63 sectors/track, 41610 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Disk identifier: 0xda185917
Device Boot Start End Blocks Id System
/dev/hdb1 1 41610 20971408+ 83 Linux
Индификатор созданного раздела — 83, это стандартный раздел Linux. Он нам не подходит. Его необходимо сменить на «fd» (linux raid autodetect). Полный список можно посмотреть указав «L» вместо «fd», потом система задаст повторный вопрос.
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): fd
Changed system type of partition 1 to fd (Linux raid autodetect)
Раздел создан, указан необходимый тип, для проверки можно ввести команду «p» и посмотреть результат, если все устраивает, то пора записать разделы на диск и приступить ко второму жёсткому диску.
Command (m for help): p
Disk /dev/hdb: 21.4 GB, 21474836480 bytes
16 heads, 63 sectors/track, 41610 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Disk identifier: 0xda185917
Device Boot Start End Blocks Id System
/dev/hdb1 1 41610 20971408+ fd Linux raid autodetect
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
Аналогично готовим второй жёсткий диск.
На этом первая часть создания RAID 1 окончена, далее следует часть 2.
Комментарии
А если настроение будет , будем рады третью часть разместить !!!
RSS лента комментариев этой записи