База знаний

www. IT-Mehanika .ru --  журнал доброго админа

Создание программного RAID на Debian/Ubuntu (Часть 1)

Оригинал статьи - http://www.qdesnic.ru/page/soft-raid-v1.html

Автор: Олег Бобылев (QDesnic)

Организация отказоустойчивой системы хранения данных — это, естественно, RAID. Стоит дать некоторое определение RAID: избыточный (резервный) массив собранный из независимых дисков. Полное описание классификации RAID массивов можно посмотреть на «Википедия». Рассматривая возможности покупки аппаратных RAID массивов, всегда приходится сталкиваться с достаточно высокой ценой. Однако, при выборе хранилища данных можно рассмотреть и другие альтернативы. Так, например, одно из возможных решений может быть реализовано на Linux (Debian) с применением недорогих комплектующих. Вот такое решение программного RAID массива мы сегодня и рассмотрим.

Постановка задачи:

  • Организовать отказоустойчивую систему хранения данных;

Условия:

  • быстрое развёртывание;
  • лёгкое управление;
  • минимальные потери при аппаратных сбоях;
  • возможность быстрого ремонта (замены) при аппаратных сбоях;
  • низкая стоимость;

 

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

 

Решение:

  • системный блок с установленным необходимым количеством жёстких дисков (наверняка, в закромах найдется старенький системник, можно использовать и новый с SATA дисками. Все зависит от того, какой дисковый объем и какая надёжность вам нужна)
  • операционная система Linux (почему именно она? Просто сейчас занимаюсь именно ей. Она бесплатна, всегда можно найти информацию по настройке и внедрению, открытые исходные коды)

Подготовка завершена, можно приступать к реализации нашего плана. Утилита отвечающая за создание и обслуживание дисковых массивов называется 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.


Комментарии   

0 #2 admin 11.11.2010 01:36
Ой ! во мы ламеры недопатченные ... Виноват , забыли , лажанулись :) С нас пыво !
А если настроение будет , будем рады третью часть разместить !!!
+2 #1 Guest 10.11.2010 14:45
Указать автора и его сайт религия не позволяет? Первая часть qdesnic.ru/.../... и вторая qdesnic.ru/.../.... Если будет настроение напишу третью.

You have no rights to post comments