前に、さくらのVPSでFreeBSD ZFS rootで書いたように、最近、自分のサイトは、VPSでZFSで運用しています。
ZFSにしていたのは、バックアップと乗り換えの時に楽なことと、圧縮できること、などの運用上のメリットからです。
さて、先だって、さくらインターネットのVPSが、全体的にオトクになったのと、乗り換えキャンペーンやってるので、乗り換えました。まだ完了してないけど。
想定通り、乗り換えは、とても楽でした。前使っていたプランは、運用用のディスクで100G欲しかったので、メモリ4G、CPU 4コア、ディスク120G(100G+20G)のプランを選んでいました。新プランでは、2Gプランでメモリ2G、CPU 3コア、ディスク200Gです。月額利用料金も半額以下になるので、乗り換えない手はないぞ、ということで様子見をしていたら、乗り換えキャンペーンだというので、決断。
200Gが、単一なのか複数ディスクなのかが心配でしたが、結果的には200G一発だったので、メンテ用の10G+ZFSに186G、4G swapという構成をとることに。
前の構成では、一台目のディスクをUFSにし、二台目を全ZFS poolに割り当てていましたが、今回は一台なので、多少実験してから導入。
Installing FreeBSD Root on ZFS using FreeBSD-ZFS partition in a FreeBSD MBR Sliceに記載のように、FreeBSD MBRスライス一枚に入れるようにしました。gpart で見ると、こんな感じ。
% gpart show
=> 63 419430337 ada0 MBR (200G)
63 20971377 1 freebsd (10G)
20971440 398458935 2 freebsd [active] (190G)
419430375 25 - free - (12k)
=> 0 20971377 ada0s1 BSD (10G)
0 20971377 1 freebsd-ufs (10G)
=> 0 398458935 ada0s2 BSD (190G)
0 390070272 1 freebsd-zfs (186G)
390070272 8388663 2 freebsd-swap (4.0G)
=> 0 20971377 ufsid/ほげほげ BSD (10G)
0 20971377 1 freebsd-ufs (10G)
手順としては、
といった手順です。コピーの類の所要時間は、ファイルシステムが70G使われている状態で、bzip2 して送る前提で、
でした。システムは、IPアドレスとホスト名が変更になっているので、移行後に変更したのは、
このホストについては、これだけです。無論、DNSの設定もあるんですが、まだ移設していない。あとは、何もせずに終了。元の環境の、rootも含めて全てが移動できるので、超楽ちん。この点ではZFSは、とってもイイです。
唯一ちょっとはまったのは、saslauth にドメイン名が含まれるのですが、これにホスト名が含まれてしまっていたので、最初認証通らなくて焦りました。
その他、Tipsとか留意点としては、
楽に運用するには、ZFS pool の根元(上の例ではrpool)を rootfs にしない。僕の場合は rpool/root にしました。メリットは、snapshotを取りやすい、レストアするときに、rpool/restore などというパーティション等を作りやすい、swap を root と分けられる (swap の zfs snapshotとると悲惨)など、いろいろ。
正式契約するまで、2Mbps 制限、OP25制限があるので、注意。さくらの内部では制限はかかっていない模様(そうでないと、zfs send/recv は8時間で終わらない。。)
こんな感じでした。
で、さくらのVPSの新システム、tweetもしたんですが、まぁ、fake されてるとしても、
旧:
CPU: Intel(R) Core(TM)2 Duo CPU T7700 @ 2.40GHz (2133.41-MHz K8-class CPU)
Origin = "GenuineIntel" Id = 0x6fb Family = 6 Model = f Stepping = 11
Features=0x783fbfd<FPU,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR,SSE,SSE2>
Features2=0x80000201<SSE3,SSSE3,HV>
AMD Features=0x20100800<SYSCALL,NX,LM>
AMD Features2=0x1<LAHF>
新:
CPU: Intel(R) Xeon(R) CPU E5645 (2400.13-MHz K8-class CPU)
Origin = "GenuineIntel" Id = 0x206c1 Family = 6 Model = 2c Stepping = 1
Features=0x178bf3fd<FPU,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,MMX,FXSR,SSE,SSE2,HTT>
Features2=0x82b82201<SSE3,SSSE3,CX16,SSE4.1,SSE4.2,x2APIC,POPCNT,AESNI,HV>
AMD Features=0x20100800<SYSCALL,NX,LM>
TSC: P-state invariant
という感じで見えてます。ま、fakeしてるかもしれませんが、体感的には、T7700とE5645の差みないなものは感じます(キャッシュの効き具合)
あとは、ノートラブルで動くことを祈る感じで。
追記 (2012/4/30)
都合で、別に一つ新規にたてるのに、セットアップのためのスクリプトを書いたので、置いときます。面倒くさいから。。
pool ができた後のfile systemセットアップ:
マウントポイントの設定: