LINUX.ORG.RU

mdadm + dmcrypt. Вопрос!


0

0

Здравствуйте знатоки, Есть пара вопросиков. Дано: Debian (Etch) 2 винта SATA(). Сейчас только на одном винте установлен Debian с шифрованными разделами (они были созданы во время инсталяции самого Debian) При загрузке спрашивает пароли, все холошо.

Задача сделать шифрованные разделы (кроме /boot)

и прикрутить все это дело в RAID 1. Вопросы начинаются когда доходит дело до самого алгоритма так сказать.

Вот ссылочка по которой я узнал про программный RAID1

http://rus-linux.net/lib.php?name=MyLDP/hard/raid1/raid.html

Как я это вижу в силу своих возможно недостаточных знаний:

Вариант # 1

1) Необходимо просто скопировать данные на 2й винт(создание идентичной таблицы разделов )

2) Установить и настроить mdadm (Тут меня останавливает вопрос: что когда настраивается mdadm то необходимо изменять таблицу разделов на fd, при этом разделы которые уже шифрованны останутся ли они в сохранности? )

3) Настраиваем GRUB При удачной настройке RAID1, в момент загрузки сколько раз мне нужно будет вводить пароль при условии что будет 5 шифрованных разделов? 5 или 10?

Вариант # 2

1)Создаем идентичную таблицу разделов, настраиваем dm-crypt

2)Настраиваем mdadm

3) Настраиваем GRUB

Вобщем ГЛАВНЫЙ ВОПРОС: что использовать первым DM-CRYPT или MDADM?

Оба Ваши варианта, IMHO, неправильные. Предлагаю свои. Правда, вместо
разделов у меня LVM тома. И на зашифрованных дисках лежат только данные,
(а ОСь грузится с флешки, при этом нужные бинарники копируются в tmpfs).

Пусть есть два диска -- "старый" /dev/sda (на котором лежат данные) и "новый"
/dev/sdb (пустой)

1. Установить mdadm
apt-get install mdadm

2. Из "нового" диска создать RAID 1 массив(ы), указав, что "зеркало" временно
отсутствует.

mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb missing

[Этот шаг никак не трогает Ваши данные]

3. Создать группу томов на /dev/md0 (назовём её big_data)

pvcreate /dev/md0
vgcreate big_data /dev/md0

4. Создать нужное количество томов (нужного размера)

lvcreate -nhome_store -L${СКОЛЬКО_НАДО}G big_data
...

5. Поверх каждого тома создать создать зашифрованные (dm-crypt) устройства

cryptsetup -y create home /dev/big_data/home_store

6. На каждом из них создать файловую систему:

mkfs.xfs -L HOME /dev/mapper/home

7. Перенести данные:

mount -t xfs -o rw,nodev,nosuid /dev/mapper/home /mnt
tar cf - --one-file-system -C /home . | tar xvf - -C /mnt
umount /mnt

8. Когда будут перенесены все данные, отмонтировать ФС, которые находятся
на "старом" диске

umount /home
...

9. [ВНИМАНИЕ! НА ЭТОМ ШАГЕ СТИРАЮТСЯ ДАННЫЕ СО "СТАРОГО" ДИСКА!]

Добавляем в массив "старый" диск:

dd if=/dev/zero of=/dev/sda bs=512 count=1024
mdadm /dev/md0 --add /dev/sda

10. Ждём, пока закончится синхронизация. Это долгое дело, можно
пойти выпить чаю (или чего покрепче, протрезвиться всё равно успеем).

А вот ещё один вариант. На случай, если Вам сильно нравится возня с разделами.
(ВНИМАНИЕ: это должно работать, но лично я так не делал)

1. Установить mdadm
apt-get install mdadm

2. Создаём на "новом" диске такие же разделы, как и на старом

sfdisk /dev/sda -O /tmp/sda.partition-table
sfdisk /dev/sdb -I /tmp/sda.partition-table

3. Из каждого раздела на новом диске создаём RAID 1 массив, указывая, что
"зеркало" временно отсутствует. (ВНИМАНИЕ: номера разделов у Вас могут
быть другие)

mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb5 missing
mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sdb6 missing
...

4. Поверх каждого RAID массива создать создать зашифрованные (dm-crypt)
устройства

cryptsetup -y create home /dev/md0
cryptsetup -y create data /dev/md1
...

6. На каждом из них создать файловую систему:

mkfs.xfs -L HOME /dev/mapper/home
mkfs.xfs -L DATA /dev/mapper/data
...

7. Перенести данные:

mount -t xfs -o rw,nodev,nosuid /dev/mapper/home /mnt
tar cf - --one-file-system -C /home . | tar xvf - -C /mnt
umount /mnt

8. Когда будут перенесены все данные, отмонтировать ФС, которые находятся
на "старом" диске

umount /home
...

9. [ВНИМАНИЕ! НА ЭТОМ ШАГЕ СТИРАЮТСЯ ДАННЫЕ СО "СТАРОГО" ДИСКА!]

Добавляем в массивы "зеркала"

dd if=/dev/zero of=/dev/sda5 bs=512 count=1024
mdadm /dev/md0 --add /dev/sda5
...

10. Ждём, пока закончится синхронизация. Опять же, можно пойти чего-нибудь
выпить.

Dselect ★★★
()
Ответ на: комментарий от Dselect

СПАСИБО ОГРОМНОЕ!!!!!!

такого развернутого ответа я даже не ожидал. :-)

vanek82
() автор топика

Вдогонку...

> в момент загрузки сколько раз мне нужно будет вводить пароль при условии
> что будет 5 шифрованных разделов?

Мне кажется, Вы как-то путаете разделы, блочные устройства, и файловые
системы. Может, вот эта картинка поможет:

	[sda1]     [sdb1]
	  \         /
	   \       /
	    \     /
	     [md0] md-raid1
	       |
	       |
	 [mapper/home] dm-crypt
	       |
	[файловая система]
	      

Пароль нужен, грубо говоря, чтоб dm-crypt "отомкнул" зашифрованное блочное
устройство (md0). О том, что это устройство из себя представляет, dm-crypt
ничего не знает (и знать не хочет). Потому, если у Вас 5 зашифрованных
файловых систем, то пароль надо будет вводить 5 раз.  Независимо от того,
сколько там компонент у RAID (и вообще, независимо от того RAID ли это).


> 1)Создаем идентичную таблицу разделов, настраиваем dm-crypt
> 2)Настраиваем mdadm

Заведомо нерабочий вариант. То есть, верёвки-то достаточно, и повеситься
Вам позволят (но повозиться придётся), но надо ли? Опять же, картинка:

	    [sda1]         [sdb1]
	      |              |
	      |              | 
 dm-crypt [mapper/home1] [mapper/home2] dm-crypt 
	       \           /            # дважды шифруем одно и то же?
		\         /             # Зачем?
		 \       /
		  \     /
		   \   /
		   [md0] md-raid1
		     |
	     [файловая система]

Dselect ★★★
()
Ответ на: Вдогонку... от Dselect

зайди на wiki от gentoo. кстати, всем рекомендую. Там все это обсосано уже во всех ипостасях.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.