Для шифрования в ядре 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!
Попробую сервер в тестовый бой поставить и посмотреть результаты.