バックアップストレージの有り様についていろいろ迷った末、メンテの容易さと拡張性で、Droboを使うことにしています。ただし、Linuxでの利用は限りなくメーカー非推奨なので、意外と苦労しました。
あたりにしたがって、作業を行えばうまくいくのですが、あちこち記述にブレがあるので、一応現時点での完全版の記録、です(といっても、Ubuntuを使うのであればほとんど障害というほどの障害はないです。セットアップさえ終わってしまえば、ただのUSBのストレージとして使えるので、もしかしたら、gpt対応カーネル&ext4対応のマシンさえあれば、Ubuntu自体不要になる可能性さえも。ためしてないけど。)
以下の記述は、Drobo(2nd Gen.)を前提にしているので、それ以外の機種だとまた違うところがあるかもしれません。あ、あと、とにかくこの手法はメーカーサポート外(のはず)なんで、くれぐれも自己責任で。
というわけで、手順。
まず、Ubuntuマシンを手に入れる。
本家サイトにはRedHat系、ソースから、gitから、とさまざまな方法が書いてありますが、なぜかうまくいかず。こういうところで積極的に苦労したい人以外にはUbuntuがイチバン簡単、なのでこれを推奨します(っていうか本当にちゃんと全環境検証したのかな。。本家の人。。)。
% sudo apt-get install drobo-utils
GUIで操作(後述しますが、あんまり意味ないかも)したければ、
% sudo apt-get install python-qt4
も。
HDDの準備
まず、テキトーにHDDをぶち込む。後で自由に交換できるから、SATAでさえあればホントになんでもいいんだけど、Droboの本体価格のことを考えると、まあ最低でも1TB以上、を使わないと意味がないかと。
Linux機とDroboを接続(USBを前提としています。eSATAのモデルだとまたちょっと違うかもしれません)したら、
% sudo drobom status
と叩いてみる。反応があれば、次に進みましょう。
LUNSIZEの決定
LUN = Logical UNitの意味らしい。設定した当時はdrobomのソースでLUNの最大値は8までに制限されていた、はず。
% sudo drobom set lunsize 8 PleaseEraseMyData
( drobom setlunsize /dev/sdd 8 PleaseEraseMyData っていう記述もあるけど、エラーが出てうまく動かない)
WARNING: lun size > 2 TiB known not work in many cases under Linux
You asked nicely, so I will set the lunsize to 8 as you requested
set lunsize to 8 TiB
unmounting: /home/drobo
umount /home/drobo:
Done… Drobo is likely now rebooting. In a few minutes, it will come back with the new LUN size.
んな感じでdroboが勝手にリブートする。
パーテーションを切る
次にパーテーションをgpt(GUID Partition Table)にする(コレやらないと8TB活かせない)。
% sudo parted /dev/sdb
GNU Parted 1.8.9
Using /dev/sdb
Welcome to GNU Parted! Type ‘help’ to view a list of commands.
(parted) mklabel
New disk label type? gpt
(parted) mkpart ext3 0 100%
(parted) quit
Information: You may need to update /etc/fstab.
fdisk -l して状況を確認。
% sudo fdisk -l
ディスク /dev/sda: 320.1 GB, 320072933376 バイト
(↑こちらは本体マシンなので、以降に出力される情報は略)警告: GPT (GUID パーティションテーブル) が ‘/dev/sdb’ に検出されました! この fdisk ユーティリティは GPT をサポートしません。GNU Parted を使ってください。
ディスク /dev/sdb: 8796.1 GB, 8796093022208 バイト
ヘッド 255, セクタ 63, シリンダ 1069397
Units = シリンダ数 of 16065 * 512 = 8225280 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスク識別子: 0x00000000デバイス ブート 始点 終点 ブロック Id システム
/dev/sdb1 1 267350 2147483647+ ee GPT
よしよし。ではメインイベント。
ファイルシステム作成
% sudo mkfs -t ext4 -j -i 262144 -L Drobo -m 0 -O sparse_super,^resize_inode /dev/sdb1
dev/sdb1
mke2fs 1.41.14 (22-Dec-2010)
Filesystem label=Drobo
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
33554432 inodes, 2147483639 blocks
0 blocks (0.00%) reserved for the super user
First data block=0
65536 block groups
32768 blocks per group, 32768 fragments per group
512 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848, 512000000, 550731776, 644972544, 1934917632Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information:doneThis filesystem will be automatically checked every 38 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
完成。だがしかし、ここから延々とチェック(内部構築?)がはじまるので、電源をぶち切ったり、droboコマンドやらmountコマンドを叩いたりせず、根気づよく放置して待つこと。フタ内部のHDDアクセスランプ(←→マーク隣の緑のやつ)が消える、まで。
マウントとか
で、あとはまあ好きにすりゃいいんですが、
% sudo mkdir /home/drobo
して、 /etc/fstab に
/dev/sdb1 /home/drobo ext4 defaults 0 0
とかしておけばおk。こまかいハナシだけど、X上げとくと/media に自動的にマウントしちゃうと思うんで、こういう明示的な指定をせずに「おおちゃんとマウントしてるから大丈夫」と、そのままフェイスレス運用とかにしたときにハマるので注意。
fstabは、UUIDで書いておいた方が無難。blkid /dev/sdxxxとかして(あるいはblkidと単に打てばだいたい見当つくかと)droboボリュームのUUIDを調べて、
UUID=xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /home/drobo ext4 defaults 0 0
のようにすれば大丈夫。
あ、あと、フォーマットはext3でもいいと思うんだけど、rdiff-backupを使っているせいか、使用率20%くらいの段階でinodeが飽和してしまった、ということがあって、ext4推奨。(Droboサイトではext4非推奨、なんだけどね。。)
もひとつおまけ。X上がってるんなら
% sudo drobom view
でGUIのユーティリティが上がります。HDDの挿さり状況とかがグラフィカルに見えていいかんじだけど、なんかうまく動かないこともあったような。。ま、気休め程度に。
とりあえず、一年弱くらいはノートラブルで稼働中。