Linuxマシンのバックアップと、ext3に潜む罠

京大推進研

2010年12月28日 (火) 18:16時点におけるMatsuda (トーク | 投稿記録)による版
移動: 案内, 検索

免責事項:このページは当研究室内での情報共有を目的とした覚え書きであり、内容の正確性・客観性は保証されません


バックアップは重要である。つい先日もある計算機の内蔵HDが突然クラッシュし、筆者は半年間のシミュレーションデータを失った。データをマシン内に放置せず、必ずバックアップをとろう。この記事では、Linuxから主にポータブルハードディスク(HD)にバックアップする際にぶつかりそうな問題を記す。Linuxで広く使われる Ext3 というファイルシステムフォーマットに潜む罠(inodeのサイズ問題)についても記す。

目次

Linuxマシンのバックアップ

シミュレーションのデータなどをバックアップする際、scp など(GUIではWinSCPなど)を使ってネットワークで手元に持ってきてもいいのだが、データサイズが大きい計算をやっている人は注意されたい。ネットワークにあまり大きなデータを流すのはよくない。shared を使っている他の人にも影響を及ぼす可能性がある。ネットワークにも優しく、失敗の可能性が一番少ないのは、直接USBポータブルHDなどを接続してバックアップする方法である。

LinuxにおいてHDのフォーマットをしたいとき、GParted というソフトを使うのが便利である。Fedoraにはデフォルトでインストールされていないので、

$ su
パスワード: (管理者パスワードを入力)
# yum install gparted

としてインストールしよう(解説記事)。さて、このとき問題になるのが、HDドライブのファイルシステムを何にするかである。

ディスクファイルシステム

ハードディスク内のファイルを管理するシステムのことをディスクファイルシステムと呼び、いくつかのフォーマットがある。Windowsで一般的なのはNTFS、少し古いフォーマットとしてFAT32がある。Linuxにおいては ext2 あるいは ext3 というフォーマット、MacではHFS+が一般的である。他にもISO 9660、UDF、XFSなど。

一番多くのシステムでサポートされているのはFAT32であり、Windowsはもとより、Linux, Macも読み書きに対応する。ただしこれはやや古いフォーマットのため、ドライブサイズやファイルの数、ファイルの最大容量に制限があったりする。たとえば、4GiB以上のファイルは作れない。計算結果をまとめてtarballにしてバックアップ、といったことはできなくなる。データが膨大になる計算の場合はこれは顕著な問題となる。(内部向けメモ:例えば当研究室のMDコードは、1条件につきGiBオーダーの膨大なデータを吐き出す。)

もしLinux上でのことだけを考えるならば、ext3にするのはひとつの確実な解である。Linux上でフォーマットを行い、ext3を選べばよい。ただし、この形式にするとWindowsでの読み書きの際には少し手間がかかる。次節参照。また、次節の方法を使ったとしても、Windowsからext3への書き込みは推奨されない。Windowsから書き込む可能性があるときはFAT32を使うのがいい。

Windowsでしか使わないのならNTFSがベストなのだが、Windows以外のOSを扱うときにはNTFSは使えない。LinuxやMacはNTFSの読み取りは可能だが、書き込みはできないからである。

ext3のWindowsでの読み書き

ソフトウェアをインストールするとWindowsでもext3を読むことができる。いくつかのソフトが存在する。大きく分けて以下の2通りがある。

  1. 独立したアプリケーションの中でファイルを操作するタイプ
  2. Windowsドライブと同じようにマウントし、Windowsのエクスプローラにおいて操作するタイプ

いずれもフリーウェアである。この他にも有償ソフトが存在する模様。

Ext2Fsdをオススメする理由

ext3 には inode というデータ構造がある。元々 inode は 128 byte だった。今でも 128 と指定してフォーマットできるが、ファイル数の制限を引き上げるためか、次世代のext4と合わせるためか、最近はデフォルトでは inode は 256 byte でフォーマットされる。しかし、そうすると上記のようなソフトの多くは inode = 256 に対応していなかったりする。従って、ext3でフォーマットする際は inode のサイズをチェックされることを推奨する。

では既に inode = 256 でフォーマットしてしまった場合はどうするか。2010年12月時点で唯一 256 の ext3 に対応しているフリーウェアは Ext2Fsd のみのようだ。[1] 非対応ソフトで 256 の ext3 を読み込もうとしても、エラーメッセージも何も出ないので途方に暮れることになる。(筆者はこれ以外のどのソフトでもマウントできなかったので、Ext2 IFS の troubleshooting ページを読み[2]、そこで配布されている mountdiag diagnosis tool を実行したところ、inode のサイズに関するメッセージが表示され、問題の特定に至った。)

なお、このドライバはインストール時に ext2/3 への書き込みを(強制的に)許可するかどうかを聞かれる。しかし所詮は純正でない互換ツールなので、ファイルシステムの破損を招く可能性もあるためおすすめはできない。それでも書き込むというなら、後で必ずLinux上で e2fsck を実行しよう(ファイルシステムの整合性をチェックするプログラム)。

まとめ

フォーマット Linux Windows Mac OS X 補足
ext2/3 ◎ native △ 要上記ソフト △ 要MacFUSE
FAT32 ○ read/write ◎ native ○ read/write 1ファイル4GiBまで
NTFS ○ r/w
(NTFS-3g driver)
◎ native △ read
HFS+ × × ◎ native

参考資料

編集履歴