четверг, 15 сентября 2011 г.

Создание шифрованного пула zfs в FreeBSD

Для шифрования в ядре FreeBSD есть GELI.
Достаточно быстрая и надежная штука.
Мне надо создать сервер, на котором будут хранится данные, доступ к которым не смогут получить нежелательные люди.

[root@new /]# geli init /dev/gpt/0disk2t
Enter new passphrase:
Reenter new passphrase:

Metadata backup can be found in /var/backups/gpt_0disk2t.eli and
can be restored with the following command:

        # geli restore /var/backups/gpt_0disk2t.eli /dev/gpt/0disk2t

[root@new /]# geli init /dev/gpt/1disk2t
Enter new passphrase:
Reenter new passphrase:

Metadata backup can be found in /var/backups/gpt_1disk2t.eli and
can be restored with the following command:

        # geli restore /var/backups/gpt_1disk2t.eli /dev/gpt/1disk2t

[root@new /]#

Далее надо подключить шифрованные диски в систему для создания пула:
[root@new /]# geli attach /dev/gpt/0disk2t
Enter passphrase:
[root@new /]# geli attach /dev/gpt/1disk2t
Enter passphrase:
[root@new /]#

Затем создать пул:
[root@new /]# zpool create data1 raidz /dev/gpt/0disk2t.eli /dev/gpt/1disk2t.eli

Сразу же решил проверить скорость записи, которая была на нешифрованном пуле в районе 32-34МБ в секунду, а скорость чтения была на уровне 86-95МБ в секунду.
Результаты такие:

[root@new /data1]# dd if=/dev/random of=5G bs=1024 count=5123600
5123600+0 records in
5123600+0 records out
5246566400 bytes transferred in 255.912170 secs (20501434 bytes/sec)
[root@new /data1]# dd if=5G of=/dev/null bs=1024
5123600+0 records in
5123600+0 records out
5246566400 bytes transferred in 147.344312 secs (35607526 bytes/sec)
[root@new /data1]#
Скорость стала заметно ниже и на чтении и на записи. Эх... что не сделаешь ради безопасности данных. :)

Запуск системы с zfs пулом из шифрованных дисков.
Я сомневался, что данные будут доступны в пуле raidz, если один из двух дисков будет недоступен. Поэтому до установки в бой решил провести тест.


Создал в пуле файл, сохранил его md5 сумму.
Перегрузил сервер с пулом data1 (см. выше).
После старта запустил команды:
[root@new ~]# geli attach /dev/gpt/0disk2t
[root@new ~]# zfs mount data1
и посмотрел на содержимое пула.
Файл с правильной суммой был на месте! Ура!
Однако zpool status ругался:
[root@new ~]# zpool status
  pool: data1
 state: DEGRADED
status: One or more devices could not be opened.  Sufficient replicas exist for
        the pool to continue functioning in a degraded state.
action: Attach the missing device and online it using 'zpool online'.
   see: http://www.sun.com/msg/ZFS-8000-2Q
 scan: none requested
config:

        NAME                 STATE     READ WRITE CKSUM
        data1                DEGRADED     0     0     0
          raidz1-0           DEGRADED     0     0     0
            gpt/0disk2t.eli  ONLINE       0     0     0
            gpt/1disk2t.eli  UNAVAIL      0     0     0  cannot open

errors: No known data errors


Я ввел правильно пароль и подключил шифрованный диск 1disk2t.eli.
Дал команду:
[root@new ~]# zpool online  data1 gpt/1disk2t.eli
И пул у меня стал снова ONLINE!

Ура!
Можно не боятся потери бойцадиска даже с raidz!
Попробую сервер в тестовый бой поставить и посмотреть результаты.

Комментариев нет:

Отправить комментарий