# geli init /dev/ad0s2e
# geli setkey -n 1 /dev/ad0s2e
# geli attach /dev/ad0s2e
# newfs -U /dev/ad0s2e.eli
# sed 's/ad0s2e/ad0s2e.eli/g' /etc/fstab > /etc/fstab.new
# mv /etc/fstab.new /etc/fstab
# echo 'geom_geli_load="YES"' >> /boot/loader.conf
geli attach を追記。init をすると geli の初期化はされるが、attach をするまでは geli device は出てこない。2006/04/24 追記。
再起動したところ、ルートを再マウントのときにパスワードを聞かれたようだ。以下のがそのときに dmesg に残ったもの。fstab への書き方を一度間違えたが、シングルユーザモードに落ちただけだった。 loader.conf にパスワードを要求する項目の書き方が最初分からなかったが、結局何も特別な物は必要無かった。
CPU: Mobile Intel(R) Celeron(R) CPU 2.40GHz (2394.01-MHz 686-class CPU)
Origin = "GenuineIntel" Id = ...
real memory = 519372800 (495 MB)
avail memory = 498864128 (475 MB)
...
ad0: 76319MB at ata0-master UDMA100
acd0: CDRW at ata1-master UDMA33
Trying to mount root from ufs:/dev/ad0s2a
GEOM_ELI: Device ad0s2e.eli created.
GEOM_ELI: Cipher: AES
GEOM_ELI: Key length: 128
GEOM_ELI: Crypto: software
drmsub1: at device 2.1 on pci0
簡単に time と dd でパフォーマンステスト。
% cd /mnt/ad0s4e
% time dd if=/dev/zero of=xxx bs=1M count=500
500+0 records in
500+0 records out
524288000 bytes transferred in 22.832656 secs (22962199 bytes/sec)
0.007u 2.800s 0:22.86 12.2% 20+2781k 4+4765io 0pf+0w
% cd /mnt/ad0s2e.eli
% time dd if=/dev/zero of=xxx bs=1M count=500
500+0 records in
500+0 records out
524288000 bytes transferred in 27.131108 secs (19324238 bytes/sec)
0.008u 2.778s 0:27.60 10.0% 21+2883k 34+4012io 5pf+0w
面白い結果がでた。time の値を読んではいけない。実際の CPU 利用率が time に入らなかったのだ。systat で観察したところ geli と ufs の両方で 20MB/s でた。しかし、CPU 利用率が ufs で 10% 前後なのに対し、geli では、95% からほぼ 100% の利用率を示した。そのほぼ全てが、system によるものだ。GEOM がどのように実装されているかは知らないが、とても興味深い結果だった。気が向いたら mdconfig などを使って、一度実験してみるのもいいかも知れない。
話は元に戻るが、暗号化している分 geli の方が CPU が高くつくのは元々予測していたことだ。それでも、情報漏洩の後始末のコストよりは安くつくだろう。
セコメントをする