■Linux に接続する | ||||||||||||||||
■GAWA-DDDSCSIUSB | ||||||||||||||||
こちらのページ,で触れた通り,USB 接続の
方は,プロトコルがメーカー独自仕様なようで,murasaki を
あれこれ設定してみたのですが,Linux からはうまく認識できませんでした.
そこで SCSI で Terminator に接続することにしました. 大容量 HDD が接続されている場合,まれに SCSI カードの BIOS が, デバイススキャン時にハングアップしてしまう場合があります.多くの 場合,SCSI カード側の BIOS のアップデートで対応できますが,この方法が 取れない場合,SCSIカードの設定で,当該 ID の デバイスのスキャンをスキップするように設定します.私のカードもこの問題 に当たってしまい,SCSI BIOS を update するのも面倒でしたので,スキップ するように設定しました(SCSI デバイスからブートする場合は問題になります が,今回のような利用方法の場合は問題ありません.また,このような状態 であっても,Linux からは問題なく利用できます). |
||||||||||||||||
■AEC-7720U | ||||||||||||||||
GAWA-DDDSCSIUSB と同様に,SCSI カードの問題が出ましたので,同じように
対処しました.また,AEC-7720U は電源投入時に接続されている IDE 機器を
チェックし,自分自身を初期化する仕様になっています(CD-RWドライブが接続さ
れていた場合,『私は CD-RW ドライブで機種は○○です』と,SCSI
インターフェイスに返すように自らを初期化する).
つまり,折角リムーバブルディスクケースを導入したわけですが,
Terminator の電源投入時には必ずディスクの電源を入れておく必要があり,
また,電源を落とすこと無しで別のディスクに入れ替えることができない
ということを意味します.
なお,実運用後に発生したトラブルとして,ディスクの電源を落と した状態から,『ディスクの電源投入→Linux で SCSI device の再認識 → マウント』と, 一連の作業をした際に,パーティションテーブルが読めずにエラーが表示され たことがありました.このとき,メッセージには次のように出力されます.
このような場合は,一度 remove-single-devide でデバイスをリムーブし, 再び add-single-device して再認識させることにより,無事読めるように なります(一瞬焦りました…).きちんと認識したときのメッセージを以下に 示します.
|
||||||||||||||||
■SOTO-3.5iUB | ||||||||||||||||
Vine 2.6r1 (kernel 2.4.19-0vl26)環境であれば,USB ポートに接続すれば,
『ピッ』という心地よい音と共に認識され,問題なく利用できます.Linux側
のメッセージ(dmesgコマンドや,/var/log/messages ファイルで確認可能)で
確認しますと,まずは接続時に
のようなメッセージが出力されます. 簡単にメッセージを解説しますと,まずは USB デバイスが接続されたヨという ことで,対応するドライバを捜しに行きます.そこで USB 機器からは 『vendor 0x4bb…』 のような,自分が何者であるかを識別するためのコードが PC に送られます. ここで Linux 上で USB/Firewire 機器を監督している murasaki (ホットプラグ ・マネージャー) が『おお,これは USB mass strage class のデバイスやな』 と判断し,usb-strage ドライバをロードします.ロードされた usb-strage ドライバは接続されたストレージを SCSI ディスクとして Linux に認識させ, 以降,エミュレーションを行います. ここで少し注目して欲しい部分は,『scsi1 : SCSI emulation for …』と, なっていることです.私の Terminator には SCSI カードが既に刺さっている ため,このカードを scsi0,USB 接続のディスクは,仮想的な SCSIカードである 『scsi1』に接続されたディスクとして認識します. 後は普通のSCSIディスクとして扱われ,『160GBのこんなディスクを認識した よ』であるとか,『デバイス名として sda にアサインしたよ』であるとか, 『パーティションテーブルが読めないよ』のようなメッセージが続いています. ここで気を付けなければならない点は,例えば IDE ディスクであれば, プライマリ IDE のマスターに接続されたディスクは hda,セカンダリ IDE の スレーブに接続されたディスクは hdd といった具合に必ずデバイス名がアサイン されます.しかし,SCSI ディスクの場合は,認識順で sda,sdb,sdc… のように アサインされます.そのため,今回行うような,『非利用時にはディスクを非 動作状態にする』といった使い方をする場合,利用時の状況によってデバイス 番号は変わるため,利用時には充分に注意してください.murasaki で設定をし, 必ず任意の場所にマウントするように設定しておけば事故は無くなるでしょう. なお,前述のメッセージは,新品のディスクを接続した際のものです. 『パーティションテーブルが読めないよ』というエラーが出ていますが, パーティションを設定してあるディスクであれば出ません. 次に USB デバイスを抜くときですが,unmount した後に,ケーブルを抜きます. すると murasaki は必要な後始末を自動的に行い,以下のようなメッセージを出力 します.
|
||||||||||||||||
■Linux で使用する | ||||||||||||||||
■前準備 | ||||||||||||||||
新品のディスクを使用する場合,当然ながらパーティションは切られて
おらず,また,フォーマットもされていません.ドライブが認識された後に,
ディスクが sda と認識されている場合は fdsik /dev/sdaを実行して
パーティション分けする必要があります.仮にディスク全体を1つの区画として
使うのであれば,基本区画として全てを割り当てて sda1 という区画を作ります.
次にフォーマットですが,ext3 ファイルシステムでフォーマット(個人的に推奨)
する場合は,mke2fs -j /dev/sda1のようにフォーマットを行います. SCSI 接続であればかなり短時間でフォーマットが終了しますが,USB 接続の 場合はかなり CPU 負荷が上がるほか,フォーマットにも長時間を要する と思います.また, 何時間経っても進行状況が進まない場合,ドライバレベルで問題が発生している 可能性があります.Vine2.5β2で USB ディスクを試用したした際には,1/3 程 フォーマットするのに1昼夜かかり,また,そこでハングアップに近い状態に なってしまいました.Vine2.6r1 であれば,フォーマットが数時間で無事に終了 すると思います.
|
||||||||||||||||
■マウント | ||||||||||||||||
ディスクは sda として認識されるようになっており,また,パーティション
は sda1.マウントポイントとして /mnt/bk_disk にマウントする状況を例に
説明します.なお,以下コマンドは root 権限で実行し,予め
mkdir /mnt/bk_disk をして,マウントポイントのディレクトリを作成
しておいてください. マウント後は通常のディスクとして利用可能です. ■SCSI接続の場合 SCSI IDが 1の場合,以下のようにコマンドを実行します."0 0 1 0" は,『SCSI インターフェイス0, Channel 0,SCSI ID 1, LUN 0』を意味します.
実行後,mount コマンドを実行すると,どのようなデバイスがどこに マウントされているか表示されます.当該の行を抜き出しますと,
■USB接続の場合 USB 接続の場合,デバイスは USB ケーブルを挿したと同時に認識されます. そのため,mount コマンドを実行するだけでOKです.
|
||||||||||||||||
■アンマウント | ||||||||||||||||
ディスクがマウント状態にある場合,Linux はディスクに遅延書き込みを
行うため,バチッとディスクの電源を切ると,キャッシュされている分だけ
データを喪失する可能性があります.
そのため,ディスクを取り外したり電源を落とす前には,マウントを解除
(アンマウント)する必要があります. ■SCSI接続の場合 ディスクの電源を落とす場合,SCSI接続の場合はアンマウントしただけで は不都合が生じますので,SCSI デバイスとして切り離す旨,ドライバに 通知する必要があります. ディスクの電源を切る前に,以下のようにオペレーションを必ず行って ください.なお,remove-single-device に続くパラメータは,マウント時と 同じです.
■USB接続の場合 USB 接続の場合,ケーブルを抜いた際にデバイスの切り離しが行われます. そのため,アンマウントコマンドの実行のみでOKです.マウントされていない のが確認できたら,後はおもむろに USB ケーブルを抜いても問題ありません.
|
||||||||||||||||
■パフォーマンスのチェック | ||||||||||||||||
Linux に接続されているディスクのパフォーマンスをチェックする際には,
hdparm コマンドがよく利用されます.このコマンドは本来ディスクの
設定を変更するためのものですが,転送レートを測定することも可能です. 例えば,sda デバイスの転送スピードをチェックする場合,以下のように 実行します.
チェックするべき項目は,『buffered disk reads』です.この表からも 分かるとおり,IDE で直結れているディスクはかなり高い転送レートが発揮 されています.しかし,SCSI 接続のディスクの方はと言いますと, Ultra SCSI の最大レートである 20[MB/sec] に達しておらず,IDE 直結の約 半分くらいのレートになっています.GAWA-DDSCSIUSB, AEC-7720U のレート が共に同じくらいになっているのからも分かる通り, IDE->SCSI変換 はかなりオーバーヘッドが大きいということかもしれません.純粋な SCSI ディスクであれば,転送レートはかなり高い筈です(純粋なSCSI ディスクを 接続する場合,ディスク性能を考えると Ultra SCSIに接続するのは勿体ない ので,UltraWide SCSI や,さらに高速な SCSI バスに接続するのが好ましい でしょう). 一方,USB 接続は USB1.1 の最大転送レートである 10[Mbps](1[MB/sec])に 近い値が出ていますが,絶対的なスピードとしてかなり見劣りがします.他社製 の同様の製品であれば,USB 2.0 接続時に 25[MB/sec]程度のレートが出るよう なので,P4-533のような USB 2.0 の利用できる Terminator であれば,そちらを 使用した方が良いかもしれません.
|
||||||||||||||||
■バックアップの実行 | ||||||||||||||||
■rsyncコマンドの説明 | ||||||||||||||||
UNIX ベースの OS を利用しているのであれば,rsync コマンドを
利用することにより,簡単に任意のディレクトリ間の同期を取るこ
とができます.rsync は,ファイルのタイムスタンプをチェックすることにより,
ファイルの同期をとります.また,デフォルトでは
ファイルの削除(更新元にファイルが無く,コピー先に存在する場合)は行い
ませんが,オプションを付けて実行することにより,削除を行うようにすることも
可能です. 以下に,rsync コマンドの代表的な使い方の例を書きます.
オプションに関して説明しますと,"-av"というオプションは, "archive モード"を利用し,"verbose"で実行せよという意味になります. "-a"オプションを付けるということは,"-rlptgoD"オプションを付けるのと 同じであり,順に説明しますと,『ディレクトリの中身を再帰的にコピーせよ』 『シンボリックリンクはそのままシンボリックリンクとしてコピーせよ』 『パーミッション情報を維持せよ』『タイムスタンプを維持せよ』『グループ 情報を維持せよ』『オーナー情報を維持せよ』『デバイスファイルの場合はその ままコピーせよ』といった意味になります.また,"--delete"は,前述した通り, 更新元に当該ファイルが無い場合は削除せよという意味になります. 一部オプションは root でないと有効になりませんので,root 権限で実行 してください. "-v"オプションは,『更新したファイルを逐次表示せよ』というオプションで あり,何も表示させたくない場合は,"-q"オプションを使用します. 殆どの場合,実行オプションは "-av --delete" だけで事足りると思います. より詳細な rsync の使い方に関しては,man ファイルを参照するようにしてください. なお,rsync コマンドは,ネットワーク経由での利用も可能です.ネットワーク を介してデータを転送する場合は,データを圧縮して転送する"-z"オプションを 使用すると良いでしょう. rsync はとても高機能なコマンドであり,特定のファイルを 更新から除外したりであるとか,デーモンモードで実行し, 透過的にミラーリングすることも出来ます.
|
||||||||||||||||
■rsyncコマンドでバックアップを行う | ||||||||||||||||
今回は SCSI 接続のディスクのみを使用し,実際に rsync でディスクを
バックアップした際に要する時間を計測してみました.方法としては,内蔵
している2本の IDE ディスクを,それぞれ GAWA-DDDSCSIUSB に内蔵したディスク,
AEC-7720U 経由で接続したディスクに rsync し,所要時間を計測することで行
いました.なお,ファイルシステムは全て ext3 でフォーマットして
あります. ※たまたまファイルの大掃除をした直後でしたので, AEC-7720U経由でバックアップしたディスクの方は,容量がかなり少なくなって います
最初にお断りしておきますと,rsync はディスクの同期に先立ち,どの ファイルをコピーするべきかや,どのファイルを消しても良いかを一通り スキャンします.そのためのオーバーヘッドがかなり存在するため,所要 時間は純粋なディスクアクセス時間と比例しません. 上記の結果を見ますと,大まかに見積もって 10[MB/sec]程度の実効レート が確保できると言って良さそうです.AEC-7720U の方は若干レートが低めで すが,これはファイルの内容に負うところが大きいと考えられます. GAWA-DDDSCSIUSB にコピーしたディスクの内容は,比較的大きなサイズの データが多く,また,数は少なめです.逆に考えますと,小さなファイルが 沢山ある場合,レートは低くなる可能性があります. DDS3 のテープドライブを用いてバックアップを行った際の実効レートは, 約 1[MB/sec]でした.この値はバックアップしたファイルの内容による大きな 変動が無かったことを考えますと,今回試みたような方法であれば 10倍以上の スループットが望め,時間で考えると1/10の以下の時間で済むと言えます. また,rsync は機構的に差分バックアップを行いますので,2回目以降の実行 時には(更新したファイルの数/容量にもよりますが)数分でバックアップが完了 することでしょう.同様のことはテープドライブを用いても行えますが,やや煩雑な 手続きが必要になるでしょう.
|
||||||||||||||||
■電源に対する負荷 | ||||||||||||||||
今回,AEC-7720U 経由で 1台ディスクを増設したことにより,内蔵ディスクは
合計 3台
となりました.そのため,電源負荷が増すことが考えられ,M/B温度
(電源温度)の上昇が懸念されます.また,リムーバブルケースには通風口が
付いているため,ここから吸気したフレッシュエアーが電源を通らずに外部に
排出されることも考えられるため,その影響も心配です. 現在使用中の Terminatorでは,別ページ でも述べた通り,スレーブに接続されて いるディスクは自動的にスピンダウンする設定にしています. そのため,非利用時にディスクは殆ど電力を消費しません.ディスクが スピンアップし,普通に利用した場合の温度変化のグラフを見てください.なお, グラフは,稼働状況監視用にインストールした RRDtool の出力グラフをそのまま 用いています. ※室温は 22度前後の状態で測定しています.
IDE HDDを普通に利用したときの CPU と M/B の温度変化 グラフのキャプションが誤っています.CPUとM/Bとで入れ替えて見て下さい グラフ中の 11:30 辺りからはじまる部分に注目してください. このグラフからは,M/B温度は1度の上昇に止まっていることが分かります. 電源の負荷に関しては,温度的には問題無さそうです. 次に,普段スピンダウンしている IDE ディスクから,内蔵させた SCSI 接続 のディスクに rsync した際の,温度変化のグラフを以下に示します. IDE HDDと AEC-7720U 経由を利用したときの CPU と M/B の温度変化 グラフのキャプションが誤っています.CPUとM/Bとで入れ替えて見て下さい グラフ中の右端がピークになり,これ以上の温度上昇はありませんでした. グラフを見ると,M/B温度の上昇は3度あります.先の実験の結果,IDEディスクを スピンアップして利用するだけでも1度上昇しておりましたので,SCSI 接続 ディスクを利用した場合の上昇は,実質2度であると言えそうです.しかし, rsyncは激しくディスクにアクセスしますので,電源に対する負荷が高くなった可能性 もあります. これらを総合して考えますと,ディスクを1台内蔵して利用した場合の温度上昇は 1度〜2度であり,2台を内蔵して同時に激しく利用した場合でも,3度に収まると 言えそうです.
|
||||||||||||||||
■まとめ | ||||||||||||||||
今回,ハードディスクを用いてファイルをバックアップを行うことに関して
検証しましたが,その効果は予想以上に高く,スピードおよび使い勝手の点で
大幅に改善されました.特にメディア交換が必要なくなったことは,
バックアップを定期的に行う上で支障になる,『気軽さ』の面での大きな
アドバンテージと言えます. 私の場合,120GB ディスク2本をバックアップする必要があるため,現在は GAWA-DDDSCSIUSB および AEC-7720U それぞれに 120GB ディスクを取り付けて 運用しています.しかし,昨年末に MAXTOR から 250GB ディスクが発売され たこともあり,近々これの導入を考えています.ネックは価格であり,現在 5400rpm の 4A250J0 で 4万円もしますので,バイト単価を考えると割高になって しまいます.数ヶ月後に は3万円台前半に降りてくることが予想されますので,値がこなれた頃に購入し ようと思っています.
ここまで色々と試行錯誤しましたが,もし,これからディスクを使用した バックアップシステムの導入を検討されている方にアドバイスをするとしたら, 次のような事柄になると思います. ■パフォーマンス重視型
■手軽さ重視型
今回,あまり SOTO-3.5iUB に関しての突っ込んだ解説はできませんでしたが, 250GB ディスク導入の暁には,これをメインにして行こうと考えています. |
||||||||||||||||
■その後['03/02/25] | ||||||||||||||||
先週末に MAXTOR の 250GBディスク(5400rpm の 4A250J0)を購入し,
SOTO-3.5iUB で使い始めました.動作音,発熱共に先日使用した 160GB ディスク
よりも遙かに良く,騒音対策,放熱対策を行わなくても問題ないレベルです.
まず,USB1.1 に接続し,1パーティションに切って ext3 でフォーマット を行いました.前回も感じたのですが,USB 経由でのディスクの使用は,かなり 負荷が高くなるようです.ピークで 15,平均でも7〜8くらいです. Pentium3-S/1.26GHz を使用した Terminator では若干のパフォーマンス低下で 済みましたが,C3/533MHz を使用した Eden では,X-Window のカーソルが固まって 動かなくなる程の状態になりました.
RRDtool で見た,フォーマット〜ファイルコピー時のロードの推移 フォーマットに要した時間は,66分15秒でした.IDE/SCSI で接続した場合 と比較して,かなりの長時間を要しています. 次に rsync に要した時間ですが,合計4つのディレクトリを rsync した所,次のようになりました.
2番目の rsync のジョブは若干レートが落ちていますが(おそらく,転送データ が少なかったため,前処理等のオーバーヘッドが大きかったためと考えられる), 殆どの場合に於いてUSB1.1の転送レートとほぼ同じ値が出ています. 都合,153GB 程をバックアップしたことになりましたが,それに要した時間は 約 2603分となりました.トータルで見ると,転送レートは約 980[kB/sec]です. 毎回のこの時間 を要するとしたら,とてもバックアップに使用できない感じですが,2回目以降は rsync で差分のみコピーされるため,私の用途であれば,次回以降,2時間以内に 収まりそうです. USB 接続のため,常に USB ケーブルを結線しておき,使いたいときには, SOTO-3.5iUB の電源を入れて Linux 側にディスクを認識させてmount し, rsync が終わったら umount して再びディスク側の電源を落とすだけでOKです. この手軽さはスピードが出ないと言う欠点を補って余りあるように感じています. 余談ですが,DDS3 のテープドライブを使用して,同じ容量をバックアップ するとしたら…と,考えたときに,ぞっとするものを感じてしまいました.
|