blog.monophile.net

コンピュータに関するメモ。

著者

山本一彰(Takaaki Yamamoto)

東京工業大学において計算機科学と応用数学を学び、 情報科学芸術大学院大学[IAMAS]においてメディア表現を専攻し修了。 2015年にコンビネータ論理を基に計算完備な計算手法 "論理珠算"を開発し、 それを含む体系である"算道"を構成した。 その成果により、2016年に 第19回 文化庁メディア芸術祭 アート部門 新人賞 (文部科学大臣賞) を受賞。 現在はSRE(サイト信頼性エンジニア)として生計をたててている。

投稿

OpenZFS on OS Xでバックアップ

概要

使っているMacBook Pro(15-inch, Mid 2015)のバッテリーが膨らんできたので、 Apple Storeへ持ち込みでバッテリー交換に出そうかと。 修理の前にはバックアップが必要らしいので、 ZFSでホームディレクトリのみをバックアップしてみた。 (基本的にシステムのフルバックアップは必要のない使い方をしている。)

MacOSのTimeMachineは複数HDDのTimeMachineのデータを一つのHDDへ結合したり、 別FSに移行したりすることが困難だったので、最初からZFSにしてみる。 なんせ、ZFSならばFreeBSDでもLinuxでも読めるし、 普段は外付けのUSBのHDDにバックアップしておいて、 あとでRAIDZを組んだNASにsend|receiveもできる。

OpenZFSをインストールする。

↓のページを参考にしてOpenZFSをインストールする。

ディスクの確認

diskutilなどでZFSを使用するディスクを決める。 今回はUSB接続HDD(2TB)の/dev/disk3を利用する。

プールの作成

プールの作成は既存のデータが消えるため、ディスクの指定はよく確認する。

MacOSはデフォルトの設定であればファイル名の大文字小文字を区別しないのと、 Unicodeの正規化がNFDという方法のため、下記のように作成時に指定する。 これらのオプションはプール作成後では変更不可能になる。

プールが作成され、パーティションが変更されていることが確認できる。

調整

パフォーマンスを上げたい場合は、 下記のようにして圧縮(lz4)を有効にし、atimeを無効にする。

実際のデータの圧縮率を確かめるときは↓のようにすればよい。

データセットの作成

今回は usb2tb/backup/mbphome というデータセットにバックアップをするので、 下記のようにして作成する。

下記のようにデータセットが作成され、 /Volumes/usb2tb/backup/mbphome にマウントされている事がわかる。

違う場所にマウントしたい場合は↓のように設定する。

バックアップ

rsyncを使ってバックアップ。

スナップショット

スナップショットを作成する。

作成されたスナップショットは↓で確認できる。

参考