22nd
バックアップ考
というわけでPCを買ってバックアップをセットアップしたので考えてみるわけだけども、やはりバックアップはどちらかというとバックアップのしやすさよりもリストアのしやすさが重要と思うわけだ。ZFS send/recvだとかiSCSIでネットワーク越しにLVM論理ボリュームを構築してミラーさせたりとか、原理的には可能かもしれないが、リストアの面倒臭さの面でぜんぜんダメと言わざるを得ない。ZFSはそれはそれでよいものだが、だからといってそれだけではバックアップとして成立しない。RAIDがバックアップではないのと同程度には、ZFSもバックアップではないのだ。バックアップは基本的に、奇をてらわないコンサバティブな技術が要求されている分野。すなわち、
バックアップ先メディアは大容量低速回転HDDのRAID1クラスタを使うということ(次点テープ)。容量と入手性の観点からHDD以外のバックアップメディアの選択肢が壊滅的ということ。しかしHDDは離散的なタイミングで確率的に壊れるものであるということ。したがってRAIDを組むしかないが、RAID1以外のレベルでは信頼性はほとんど向上しないか、レベルによっては低下するということ。何発壊れようが最後の一発が生き残ってさえいればデータが吸い出せる上に、その状況で虎の子のアクティブHDDをアレイから切り離してしまったとしても(きわめてありがちなオペレーションミス)、まだそのHDDを外付けHDDケースに入れてUSBかなんかで繋いで
dd(1)
で吸い出せる可能性があるのは、RAID1しかないということ。rsync(1)
でバックアップし、rsync(1)
でリストアするということ。つまり普段からよく使い、手に馴染んでいて、動作もよく理解している方法を使うということ。かつrsync(1)
であれば、遠隔バックアップ、増分バックアップに対応しており、大抵のものはバックアップできる上に、rsync(1)
でバックアップしたものをrsync(1)
でリストアするのに特別な操作は不要であること。バックアップ元メディアには必ずスナップショットFSを使うということ。いまどきスナップショットが取れないFSしか提供されていないOSでは、バックアップが必要なほど重要な情報を置くべきでないということ。どうしても必要であればスナップショットをとれるVMの上に環境構築して、そのVMのスナップショットをバックアップすること。
ここまでは基本中の基本と思われる。大体誰に聞いても大差ない。これに俺の個人的な趣味をあえて加えるとすれば、
自動的にバックアップする設計にせよということ。ただし手動でバックアップ可能にせよということ。手動でバックアップして失敗するほどアホなことはないこと。しかしながら、自動でバックアップするのが失敗していたときに手でフォローできないことは輪をかけてアホであること。
リストアしてみよということ。本番稼働前に一回はHDDを故意に活線挿抜してみて復旧を試せということ。
人生のなるべく早い段階でデータロスを実際に経験せよということ。大人になって金銭や信用のダメージが大きくなる前に、データがなくなった悲しさとか設定が失われた困難さを経験しておけということ。
他人のデータは頼まれても絶対預かるなということ。
まあこんなもんですかね。がんばって生きてください。