Enviar pesquisa
Carregar
バックアップに一番いいファイルシステムを頼む
•
1 gostou
•
1,726 visualizações
Kenichiro MATOHARA
Seguir
comicmarket80 で頒布されたLinuxSearchers の LinuxManiacs に寄稿した原稿です.
Leia menos
Leia mais
Engenharia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 8
Baixar agora
Baixar para ler offline
Recomendados
Tokyo.R#16 wdkz
Tokyo.R#16 wdkz
Kazuya Wada
Fabricでサーバー管理をDRYにしよう
Fabricでサーバー管理をDRYにしよう
max747
2日間Fabricを触った俺が 色々解説してみる
2日間Fabricを触った俺が 色々解説してみる
airtoxin Ishii
20130328 第03回福岡debian勉強会 debianパッケージ情報と依存関係の可視化
20130328 第03回福岡debian勉強会 debianパッケージ情報と依存関係の可視化
Tsuyoshi Yamada
Hadoop on LXC
Hadoop on LXC
俊夫 森
systemdを始めよう
systemdを始めよう
Preferred Networks
CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1
Kotaro Noyama
RでGPU使ってみた
RでGPU使ってみた
Kazuya Wada
Recomendados
Tokyo.R#16 wdkz
Tokyo.R#16 wdkz
Kazuya Wada
Fabricでサーバー管理をDRYにしよう
Fabricでサーバー管理をDRYにしよう
max747
2日間Fabricを触った俺が 色々解説してみる
2日間Fabricを触った俺が 色々解説してみる
airtoxin Ishii
20130328 第03回福岡debian勉強会 debianパッケージ情報と依存関係の可視化
20130328 第03回福岡debian勉強会 debianパッケージ情報と依存関係の可視化
Tsuyoshi Yamada
Hadoop on LXC
Hadoop on LXC
俊夫 森
systemdを始めよう
systemdを始めよう
Preferred Networks
CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1
Kotaro Noyama
RでGPU使ってみた
RでGPU使ってみた
Kazuya Wada
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
Yasutaka Hamada
Quick Introduction to GlusterFS
Quick Introduction to GlusterFS
Etsuji Nakai
initとプロセス再起動
initとプロセス再起動
Takashi Takizawa
RでつくるWebアプリ~rApache編~
RでつくるWebアプリ~rApache編~
Kazuya Wada
linux基礎_新卒エンジニア勉強会20130404
linux基礎_新卒エンジニア勉強会20130404
エンジニア勉強会 エスキュービズム
Kernel fcache-bug
Kernel fcache-bug
MITSUNARI Shigeo
initramfsについて
initramfsについて
Kazuhiro Nishiyama
Version管理 1
Version管理 1
hakoika-itwg
Lamp環境&Wordpress設定(debian)
Lamp環境&Wordpress設定(debian)
Kimiyuki Yamauchi
クックパッドのスケーリング
クックパッドのスケーリング
Satoshi Takada
Open VZ
Open VZ
Kazuaki Fujikura
20140828 #ssmjp 社内チューニンガソンで優勝したはなし
20140828 #ssmjp 社内チューニンガソンで優勝したはなし
Masahiro NAKAYAMA
Linux Namespace
Linux Namespace
Masami Ichikawa
Maatkitの紹介
Maatkitの紹介
Akinori YOSHIDA
CMS時代のバックアップノウハウを身につけよう!
CMS時代のバックアップノウハウを身につけよう!
Takashi Uemura
Lvmを縮小してみた
Lvmを縮小してみた
koedoyoshida
今日から使い始めるChef
今日から使い始めるChef
Masahiro NAKAYAMA
Rが苦手な人にもRを使って頂くために~RcommanderとRook~
Rが苦手な人にもRを使って頂くために~RcommanderとRook~
Kazuya Wada
NGS速習コース:UNIXの基礎の理解/Linux導入
NGS速習コース:UNIXの基礎の理解/Linux導入
Takeru Nakazato
Introduction to Initramfs - Initramfs-tools and Dracut
Introduction to Initramfs - Initramfs-tools and Dracut
Taisuke Yamada
IaaSクラウドを支える基礎技術 演習編_v1_0
IaaSクラウドを支える基礎技術 演習編_v1_0
Etsuji Nakai
Mysql casial01
Mysql casial01
matsuo kenji
Mais conteúdo relacionado
Mais procurados
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
Yasutaka Hamada
Quick Introduction to GlusterFS
Quick Introduction to GlusterFS
Etsuji Nakai
initとプロセス再起動
initとプロセス再起動
Takashi Takizawa
RでつくるWebアプリ~rApache編~
RでつくるWebアプリ~rApache編~
Kazuya Wada
linux基礎_新卒エンジニア勉強会20130404
linux基礎_新卒エンジニア勉強会20130404
エンジニア勉強会 エスキュービズム
Kernel fcache-bug
Kernel fcache-bug
MITSUNARI Shigeo
initramfsについて
initramfsについて
Kazuhiro Nishiyama
Version管理 1
Version管理 1
hakoika-itwg
Lamp環境&Wordpress設定(debian)
Lamp環境&Wordpress設定(debian)
Kimiyuki Yamauchi
クックパッドのスケーリング
クックパッドのスケーリング
Satoshi Takada
Open VZ
Open VZ
Kazuaki Fujikura
20140828 #ssmjp 社内チューニンガソンで優勝したはなし
20140828 #ssmjp 社内チューニンガソンで優勝したはなし
Masahiro NAKAYAMA
Linux Namespace
Linux Namespace
Masami Ichikawa
Maatkitの紹介
Maatkitの紹介
Akinori YOSHIDA
CMS時代のバックアップノウハウを身につけよう!
CMS時代のバックアップノウハウを身につけよう!
Takashi Uemura
Lvmを縮小してみた
Lvmを縮小してみた
koedoyoshida
今日から使い始めるChef
今日から使い始めるChef
Masahiro NAKAYAMA
Rが苦手な人にもRを使って頂くために~RcommanderとRook~
Rが苦手な人にもRを使って頂くために~RcommanderとRook~
Kazuya Wada
NGS速習コース:UNIXの基礎の理解/Linux導入
NGS速習コース:UNIXの基礎の理解/Linux導入
Takeru Nakazato
Introduction to Initramfs - Initramfs-tools and Dracut
Introduction to Initramfs - Initramfs-tools and Dracut
Taisuke Yamada
Mais procurados
(20)
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
Quick Introduction to GlusterFS
Quick Introduction to GlusterFS
initとプロセス再起動
initとプロセス再起動
RでつくるWebアプリ~rApache編~
RでつくるWebアプリ~rApache編~
linux基礎_新卒エンジニア勉強会20130404
linux基礎_新卒エンジニア勉強会20130404
Kernel fcache-bug
Kernel fcache-bug
initramfsについて
initramfsについて
Version管理 1
Version管理 1
Lamp環境&Wordpress設定(debian)
Lamp環境&Wordpress設定(debian)
クックパッドのスケーリング
クックパッドのスケーリング
Open VZ
Open VZ
20140828 #ssmjp 社内チューニンガソンで優勝したはなし
20140828 #ssmjp 社内チューニンガソンで優勝したはなし
Linux Namespace
Linux Namespace
Maatkitの紹介
Maatkitの紹介
CMS時代のバックアップノウハウを身につけよう!
CMS時代のバックアップノウハウを身につけよう!
Lvmを縮小してみた
Lvmを縮小してみた
今日から使い始めるChef
今日から使い始めるChef
Rが苦手な人にもRを使って頂くために~RcommanderとRook~
Rが苦手な人にもRを使って頂くために~RcommanderとRook~
NGS速習コース:UNIXの基礎の理解/Linux導入
NGS速習コース:UNIXの基礎の理解/Linux導入
Introduction to Initramfs - Initramfs-tools and Dracut
Introduction to Initramfs - Initramfs-tools and Dracut
Semelhante a バックアップに一番いいファイルシステムを頼む
IaaSクラウドを支える基礎技術 演習編_v1_0
IaaSクラウドを支える基礎技術 演習編_v1_0
Etsuji Nakai
Mysql casial01
Mysql casial01
matsuo kenji
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
Preferred Networks
VarnishCache入門Rev2.1
VarnishCache入門Rev2.1
Iwana Chan
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
Masahito Zembutsu
MTのダイナミック処理(PHP)を高速化する@サーバーサイドスクリプティング
MTのダイナミック処理(PHP)を高速化する@サーバーサイドスクリプティング
純生 野田
S3 を単純ストレージとして 利用する手段の比較
S3 を単純ストレージとして 利用する手段の比較
真治 米田
Mincs 日本語版
Mincs 日本語版
Masami Hiramatsu
CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1
Kotaro Noyama
2013OSC関西@京都_CloudStackとCloudFoundaryがまるわかり!
2013OSC関西@京都_CloudStackとCloudFoundaryがまるわかり!
Midori Oge
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
靖 小田島
Debug Hacks Conference 2009
Debug Hacks Conference 2009
Hiro Yoshioka
Openstack+Ceph設定ガイド
Openstack+Ceph設定ガイド
OSSラボ株式会社
マイクラ自動化枠第2回資料
マイクラ自動化枠第2回資料
Ryo Fujita
Infinite Debian - Platform for mass-producing system every second
Infinite Debian - Platform for mass-producing system every second
Taisuke Yamada
dm-thin-internal-ja
dm-thin-internal-ja
Akira Hayakawa
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1
Ryosuke IWANAGA
20190926_Try_RHEL8_NVMEoF_Beta
20190926_Try_RHEL8_NVMEoF_Beta
Kohei KaiGai
Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)
Yoshinori Matsunobu
20160827 第24回シェル芸勉強会LT Bash on Windows環境非破壊ハンズオン
20160827 第24回シェル芸勉強会LT Bash on Windows環境非破壊ハンズオン
kunst1080
Semelhante a バックアップに一番いいファイルシステムを頼む
(20)
IaaSクラウドを支える基礎技術 演習編_v1_0
IaaSクラウドを支える基礎技術 演習編_v1_0
Mysql casial01
Mysql casial01
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
VarnishCache入門Rev2.1
VarnishCache入門Rev2.1
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
MTのダイナミック処理(PHP)を高速化する@サーバーサイドスクリプティング
MTのダイナミック処理(PHP)を高速化する@サーバーサイドスクリプティング
S3 を単純ストレージとして 利用する手段の比較
S3 を単純ストレージとして 利用する手段の比較
Mincs 日本語版
Mincs 日本語版
CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1
2013OSC関西@京都_CloudStackとCloudFoundaryがまるわかり!
2013OSC関西@京都_CloudStackとCloudFoundaryがまるわかり!
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
AWSとAnsibleで実践!プロビジョニング入門‐Lamp+Laravel-
Debug Hacks Conference 2009
Debug Hacks Conference 2009
Openstack+Ceph設定ガイド
Openstack+Ceph設定ガイド
マイクラ自動化枠第2回資料
マイクラ自動化枠第2回資料
Infinite Debian - Platform for mass-producing system every second
Infinite Debian - Platform for mass-producing system every second
dm-thin-internal-ja
dm-thin-internal-ja
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1
20190926_Try_RHEL8_NVMEoF_Beta
20190926_Try_RHEL8_NVMEoF_Beta
Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)
20160827 第24回シェル芸勉強会LT Bash on Windows環境非破壊ハンズオン
20160827 第24回シェル芸勉強会LT Bash on Windows環境非破壊ハンズオン
Mais de Kenichiro MATOHARA
PQI Air Pen Hack
PQI Air Pen Hack
Kenichiro MATOHARA
ゲーミングプラットホームのLutris
ゲーミングプラットホームのLutris
Kenichiro MATOHARA
USBを保護するUSBGuard
USBを保護するUSBGuard
Kenichiro MATOHARA
Raspberry PiのUSB OTGを試す
Raspberry PiのUSB OTGを試す
Kenichiro MATOHARA
Let’s Encrypt更新話
Let’s Encrypt更新話
Kenichiro MATOHARA
Raspberry piのsdl等に対応したreal vncを試してみた
Raspberry piのsdl等に対応したreal vncを試してみた
Kenichiro MATOHARA
ちょっと古いマシンにLinuxを
ちょっと古いマシンにLinuxを
Kenichiro MATOHARA
鹿児島Linux勉強会2016.04
鹿児島Linux勉強会2016.04
Kenichiro MATOHARA
Raspberry Piにdiskless modeのalpine linuxを導入してみる
Raspberry Piにdiskless modeのalpine linuxを導入してみる
Kenichiro MATOHARA
勉強会向けサーバを作ってみる2 / Rasbian jessieを試す/ Google Authenticatorのパスコードを作る
勉強会向けサーバを作ってみる2 / Rasbian jessieを試す/ Google Authenticatorのパスコードを作る
Kenichiro MATOHARA
オープンソースカンファレンス大分参加報告 & 勉強会向けサーバを作ってみる
オープンソースカンファレンス大分参加報告 & 勉強会向けサーバを作ってみる
Kenichiro MATOHARA
OSC15OT 配布ペーパー
OSC15OT 配布ペーパー
Kenichiro MATOHARA
鹿児島らぐはじめました(オープンソースカンファレンス2015大分LT)
鹿児島らぐはじめました(オープンソースカンファレンス2015大分LT)
Kenichiro MATOHARA
マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)
マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)
Kenichiro MATOHARA
鹿児島らぐC87配布ペーパー
鹿児島らぐC87配布ペーパー
Kenichiro MATOHARA
鹿児島に引っ越しました
鹿児島に引っ越しました
Kenichiro MATOHARA
技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい2
技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい2
Kenichiro MATOHARA
鹿児島のOSM状況
鹿児島のOSM状況
Kenichiro MATOHARA
鹿児島らぐはじめました & オープ ンソースアンカンファレンス鹿児 島のお誘い
鹿児島らぐはじめました & オープ ンソースアンカンファレンス鹿児 島のお誘い
Kenichiro MATOHARA
「BluetoothでLinuxマシンとAndroidを繋いで話が出来るようにした話」「台風で停電になって省電力の設定をした話」「ネットワークの設定が引き...
「BluetoothでLinuxマシンとAndroidを繋いで話が出来るようにした話」「台風で停電になって省電力の設定をした話」「ネットワークの設定が引き...
Kenichiro MATOHARA
Mais de Kenichiro MATOHARA
(20)
PQI Air Pen Hack
PQI Air Pen Hack
ゲーミングプラットホームのLutris
ゲーミングプラットホームのLutris
USBを保護するUSBGuard
USBを保護するUSBGuard
Raspberry PiのUSB OTGを試す
Raspberry PiのUSB OTGを試す
Let’s Encrypt更新話
Let’s Encrypt更新話
Raspberry piのsdl等に対応したreal vncを試してみた
Raspberry piのsdl等に対応したreal vncを試してみた
ちょっと古いマシンにLinuxを
ちょっと古いマシンにLinuxを
鹿児島Linux勉強会2016.04
鹿児島Linux勉強会2016.04
Raspberry Piにdiskless modeのalpine linuxを導入してみる
Raspberry Piにdiskless modeのalpine linuxを導入してみる
勉強会向けサーバを作ってみる2 / Rasbian jessieを試す/ Google Authenticatorのパスコードを作る
勉強会向けサーバを作ってみる2 / Rasbian jessieを試す/ Google Authenticatorのパスコードを作る
オープンソースカンファレンス大分参加報告 & 勉強会向けサーバを作ってみる
オープンソースカンファレンス大分参加報告 & 勉強会向けサーバを作ってみる
OSC15OT 配布ペーパー
OSC15OT 配布ペーパー
鹿児島らぐはじめました(オープンソースカンファレンス2015大分LT)
鹿児島らぐはじめました(オープンソースカンファレンス2015大分LT)
マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)
マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)
鹿児島らぐC87配布ペーパー
鹿児島らぐC87配布ペーパー
鹿児島に引っ越しました
鹿児島に引っ越しました
技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい2
技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい2
鹿児島のOSM状況
鹿児島のOSM状況
鹿児島らぐはじめました & オープ ンソースアンカンファレンス鹿児 島のお誘い
鹿児島らぐはじめました & オープ ンソースアンカンファレンス鹿児 島のお誘い
「BluetoothでLinuxマシンとAndroidを繋いで話が出来るようにした話」「台風で停電になって省電力の設定をした話」「ネットワークの設定が引き...
「BluetoothでLinuxマシンとAndroidを繋いで話が出来るようにした話」「台風で停電になって省電力の設定をした話」「ネットワークの設定が引き...
バックアップに一番いいファイルシステムを頼む
1.
バックアップに一番いいファイルシステムを頼む KenichiroMATOHARA(matoken) http://hpv.cc/~maty/ 現在バックアップに rsync で--link-dest
オプションを利用して世代バックアップをしています. これはファイルシステムのハードリンクを利用してファイル単位で毎回差分バックアップをするので すが,バックアップされたファイルを見ると毎回フルバックアップを取得しているように見えます. Mac OS X の TimeMachine にイメージは近いです. 削除も古いものをディレクトリごと削除す るだけなので運用も楽です.編集ファイルが少なかったり,差分が少ない時には向いています.仮想 マシンイメージなどがあると仮想マシン実行毎に差分が発生するのであまり向かないでしょう. 以 下はバックアップの例です.crontab で毎日深夜に実行するようにしています. # 日時バックアップ 3 25 * * * /usr/bin/rsync -avv --delete --link-dest=/backup/`/bin/date -d '1 day ago' +%Y%m%d`/ /home/mk/ /backup/`date +%Y%m%d`/ > /dev/null 2>&1 # 14 日前のバックアップを削除 3 15 * * * /bin/rm -rf /backup/`/bin/date -d '14 day ago' +%Y%m%d` > /dev/null 2>&1 これで,/home/mk を毎日/backup/yyyymmdd 以下に 2 週間分バックアップします.差分 バックアップですが,見た目は毎日フルバックアップのように見えます. rsync の他のオプションも 勿論利用できるので,リモートバックアップや,特定のファイル・ディレクトリを除外といったことも可 能です. これはこれで便利だしそこそこ満足しているんですが,欲を言えば圧縮が効けばいいなというこ とで,幾つかファイルシステムを試してみました. NILFS2 国産の Linux 用ファイルシステムで,オンラインでスナップショットをどんどん取っていけるログ 構造化ファイルシステムです.間違って削除してしまったり,上書き保存してしまっても過去のデー タを参照して復旧できます. ということで前から興味はあったけど実際運用したことのない nilfs2 ですが,東京 Debian 勉 強会で取り上げられたのをきっかけに試してみました. ※以下の NILFS2 の設定は DebianSqueeze と UbuntuNatty の環境で確認しました.環境が 違う場合は適時読み替えてください. 導入 パッケージがあるので導入は簡単です. $ sudo apt-get install nilfs2-tools これだけです.
2.
ディスクの初期化 以下の例では/dev/vdb1 というディスクを nilfs
で初期化しています. $ sudo mkfs.nilfs2 /dev/vdb1 mkfs.nilfs2 ver 2.0 Start writing file system initial data to the device Blocksize:4096 Device:/dev/vdb1 Device Size:10736328704 File system initialization succeeded !! マウント 早速マウントします. $ sudo mount -t nilfs2 /dev/vdb1 /export/ mount.nilfs2: WARNING! - The NILFS on-disk format may change at any time. mount.nilfs2: WARNING! - Do not place critical data on a NILFS filesystem. 怖いメッセージが出ますがうまくマウントできたようです. 恒久的なマウントの設定 このままでは再起動を行うとアンマウントされるので,/etc/fstab に設定します.まずはそのために UUID を調べようとしましたが,UUID が見当たりませんでした. $ sudo blkid /dev/vdb $ ls -l /dev/disk/by-uuid/ 合計 0 lrwxrwxrwx 1 root root 10 2011-06-16 03:26 a4ad2750-5207-4d1a-abdd- 9680b5469780 -> ../../vda1 以下のスレッドを見ると,nilfs には実装されているけど周りの実装が追いついていないんでしょう か. "Nilfs users (Log-Structured Snapshotting Filesystem)" http://comments.gmane.org/gmane.comp.file-systems.nilfs.user/1400 仕方がないのでデバイス名で設定します./etc/fstab に以下を追記して念の為再起動して動作確 認を行います. /dev/vdb1 /export nilfs2 noauto 0 0 再起動. $ mount|grep /dev/vdb1 /dev/vdb1 on /export type nilfs2 (rw,gcpid=654) チェックポイントの確認 lscp コマンドで,チェックポイント(cp)の確認が出来ます.
3.
$ lscp CNO DATE
TIME MODE FLG NBLKINC ICNT 1 2011-06-10 01:52:47 cp - 11 3 2 2011-06-10 01:54:41 cp - 11 4 3 2011-06-10 02:00:11 cp - 1324 143 4 2011-06-10 02:00:17 cp - 4674 184 自動的に cp が作られているのが解ります. スナップショットの作成 mkcp -s でコマンド実行時のスナップショット(ss)が取得できます. $ sudo mkcp -s $ lscp|grep ss 42 2011-06-10 02:02:59 ss - 2878 816 cp の場合は自動的に生成されますが,ガベージコレクションが自動的に削除します.削除タイミン グは/etc/nilfs_cleanerd.conf の protection_period の秒数の間は保護されるのでそれ以降 になります. それに対して ss は GC では削除されません. スナップショットからの復元 さて,スナップショットからの復元も試してみます. まずはテストファイルを作成してスナップショット の作成を行います. $ mkdir test $ echo test > test/testdata $ cat test/testdata test $ sudo mkcp -s $ lscp | tail -2 9519 2011-06-17 00:59:57 ss - 25 585668 9520 2011-06-17 01:00:23 cp i 20 585668 今作ったファイルを削除してスナップショットをマウントして復元してみます. スナップショットのマウ ントはマウントオプションに -o ro,cp=9519 の様にリードオンリーと,対象のスナップショットを指 定してマウントします. $ rm test/testdata $ sudo mkdir /media/nilfs-ss $ sudo mount -t nilfs2 -o ro,cp=9519 /dev/sdc1 /media/nilfs-ss $ ls -l /media/nilfs-ss/test/testdata -rw-r--r-- 1 mk mk 5 2011-06-17 00:59 /media/nilfs-ss/test/testdata $ cat /media/nilfs-ss/test/testdata
4.
test $ cp -p
/media/nilfs-ss/test/testdata test/ $ cat test/testdata test $ sudo umount /media/nilfs-ss うまく行きました! スナップショットの削除 スナップショットは自動的に消えないのですが,ある程度のところで削除しないとディスクがいっぱ いになってしまいます.スナップショットの削除を試してみます. スナップショットを確認して rmcp コマンドで削除してみます. $ lscp|grep ss 42 2011-06-10 02:02:59 ss - 2878 816 9519 2011-06-17 00:59:57 ss - 25 585668 $ sudo rmcp 42 rmcp: 42: cannot remove snapshot To delete snapshot(s), change them into checkpoints with chcp command before removal. 失敗しました.スナップショットのままでは削除できないようです.一旦 cp に変更して削除してみま す. $ sudo chcp cp 42 $ lscp |grep ss 9519 2011-06-17 00:59:57 ss - 25 585668 $ lscp |grep '42 2011-06-10 02:02:59' 42 2011-06-10 02:02:59 cp - 2878 816 cp になりました.放おっておいても GC されると思いますが明示的に削除してみます. $ sudo rmcp 42 $ lscp |grep '42 2011-06-10 02:02:59' 消えたようです. 最古の ss を cp にするのは以下のような感じで行けそうです. # lscp | grep ss | head -1 | awk '{print $1}' | xargs chcp cp 先ずは,1 日一回 crontab で mkcp -s してみようと思います. 消すのは容量と相談しながらです が 1 月後くらいでいいかな…
5.
Lessfs このファイルシステムを知ったのは,2ch の Linux
板「ファイルシステム総合スレ その 12」の 990 でした. 990 名前:login:Penguin [sage]: 2011/07/27(水) 20:31:12.69 ID:8rO7Z0JW >>987 うちはこんなの使ってる。 ttp://www.lessfs.com/wordpress/ 重複排除、圧縮、暗号化と一通り対応してる。 恐くてバックアップ用途だけだけど、7 世代バックアップ取っても、オリジナルよりサイズが 小さくすんでるよ。 これは良さそうだ.ということで試してみました. ※以下の Lessfs の設定は UbuntuNatty の環境で確認しました.環境が違う場合は適時読み替 えてください.Lucid については ppa のパッケージが一緒に用意されていたので恐らく同じ手順で 動くでしょう. “lessfs | Open source data de-duplication ” http://www.lessfs.com/wordpress/ Lessfs は重複排除,圧縮と暗号化(lzo or QuickLZ)を行う fuse を利用したファイルシステムの ようです.重複排除はブロックデバイス単位で行うようです. パッケージはないようですが,PPA があったのでこれを利用させてもらうことにします. “Lessfs : Brandon Snider ” https://launchpad.net/~brandonsnider/+archive/lessfs lessfs の原稿執筆時点での最新版のソースは 1.5.0,ppa は 1.4.8 ですが,1.4.9 ではログ書き 出し機能の追加,1.5.0 では db のパフォーマンス改善などが盛り込まれているようです.とりあえ ず試すのには問題なさそうなので ppa の 1.4.8 で試します. 導入 ppa を登録して導入します. $ sudo add-apt-repository ppa:brandonsnider/lessfs $ sudo apt-get update $ sudo apt-get install lessfs これで lessfs が導入されたはずです. 起動スクリプトも設定されました. ファイルシステムの作成 今回は試しに 4GB の USB メモリ上で試してみました. テスト用の領域は前もって初期化し
6.
て/media/lessfs にマウントしておきます. $ sudo
mkfs.ext3 /dev/sdc1 $ sudo mount /dev/sdc1 /media/lessfs $ sudo chown mk:mk /media/lessfs 設定ファイルを用意します.パッケージで用意された設定ファイルをベースに編集します. $ cp /usr/share/doc/lessfs/examples/lessfs.cfg /media/lessfs このベースファイルの/data/{dta,mta} にメタデータが作成されるようです.環境に合わせて/data 部分を書き換えます. 今回は/media/lessfs にしました. ほかの部分は既定値のままです. メタデータのディレクトリを作成しておきます. $ mkdir /media/lessfs/{dta,mta} そしていよいよマウントです.マウントポイントは/media/lessfs/mnt にしました. 初回マウント時はメタデータを作ららしく 20 秒ほど時間がかかりました. $ mkdir /media/lessfs/mnt $ lessfs /media/lessfs/lessfs.cfg /media/lessfs/mnt $ mount |grep lessfs lessfs on /media/lessfs/lessfs type fuse.lessfs (rw,nosuid,nodev,max_read=131072,default_permissions,allow_other) 無事マウントされたようです. 利用前の容量を確認しておきます. $ df -k|grep lessfs lessfs 3850292 137952 3516752 4% /media/lessfs/lessfs 重複排除の確認をしてみます. 先ずは適当なファイルを lessfs 以下に cp します. $ ls -l ~/Downloads/squeeze-custom-amd64-0710.iso -rw-r--r-- 1 mk mk 196120576 2011-07-10 21:35 /home/mk/Downloads/squeeze- custom-amd64-0710.iso $ cp /home/mk/Downloads/squeeze-custom-amd64-0710.iso /media/lessfs/lessfs/ $ df -k|grep lessfs lessfs 3850292 517508 3137196 15% /media/lessfs/lessfs $ cp /media/lessfs/lessfs/squeeze-custom-amd64-0710.iso /media/lessfs/lessfs/squeeze-custom-amd64-0710.iso-2 $ df -k|grep lessfs lessfs 3850292 517628 3137076 15% /media/lessfs/lessfs $ cp /media/lessfs/lessfs/squeeze-custom-amd64-0710.iso /media/lessfs/lessfs/squeeze-custom-amd64-0710.iso-3 $ cp /media/lessfs/lessfs/squeeze-custom-amd64-0710.iso
7.
/media/lessfs/lessfs/squeeze-custom-amd64-0710.iso-4 $ cp /media/lessfs/lessfs/squeeze-custom-amd64-0710.iso /media/lessfs/lessfs/squeeze-custom-amd64-0710.iso-5 $
df -k|grep lessfs lessfs 3850292 517904 3136800 15% /media/lessfs/lessfs $ ls -l /media/lessfs/lessfs/ 合計 957620 -rw-r--r-- 1 mk mk 196120576 2011-08-10 02:42 squeeze-custom-amd64-0710.iso -rw-r--r-- 1 mk mk 196120576 2011-08-10 02:46 squeeze-custom-amd64-0710.iso- 2 -rw-r--r-- 1 mk mk 196120576 2011-08-10 02:47 squeeze-custom-amd64-0710.iso- 3 -rw-r--r-- 1 mk mk 196120576 2011-08-10 02:47 squeeze-custom-amd64-0710.iso- 4 -rw-r--r-- 1 mk mk 196120576 2011-08-10 02:47 squeeze-custom-amd64-0710.iso- 5 中身な同じファイルが増えても利用量は殆ど増えません.次は圧縮の確認をしてみます.圧縮効率 が良くなるように中身が 0 だけの大きなファイルを作ります. $ dd if=/dev/zero of=/media/lessfs/lessfs/zero bs=1M count=1000 1000+0 記録始め 1000+0 記録終わり 1048576000 バイト (1.0 GB) コピー終了, 4.35437 s, 241 MB/s $ ls -l /media/lessfs/lessfs/zero -rw-r--r-- 1 mk mk 1048576000 2011-08-10 02:50 /media/lessfs/lessfs/zero $ df -k|grep lessfs lessfs 3850292 518360 3136344 15% /media/lessfs/lessfs 1GB のファイルを追加しましたが容量は殆ど増えていません.素晴らしいですね. 終わりに NILFS2 はスナップショットからの復元が簡単なので,バックアップだけでなくホームディレクトリな どの通常作業時のディレクトリとして利用するのも便利そうです.Lessfs は fuse 経由ですし書き 込みも遅いようですが重複排除や圧縮などが便利なので頭で紹介した rsync バックアップなどと 組み合わせて使うと便利そうです.ブロックデバイス単位で重複排除も効きそうなので仮想マシン イメージなどのバックアップにも良さそうです.問題はどちらも利用実績が少ないので不安が残る ところでしょうか.私の環境では現在 NILFS2 はバックアップ領域から更に差分バックアップ取得 のために利用しています.Lessfs は未だ検証中といったところです. 後は,期待の Btrfs やライセンスの関係で Linux で利用するのは面倒ですが ppa への登録もあ る ZFS なども近いうちに試してみようと思っています. 参考 URL NILFS|技 http://www.waza.jp/nilfs/ NILFS - Continuous Snapshotting Filesystem for Linux
8.
http://www.nilfs.org/ja/index.html [NILFS] What is
NILFS? http://www.nilfs.org/ja/about_nilfs.html 第 70 回 東京エリア Debian 勉強会 2010 年 11 月 -特集 : 俺のファイルシステムは熱いぜ!- http://tokyodebian.alioth.debian.org/pdf/debianmeetingresume201011.pdf lessfs | Open source data de-duplication http://www.lessfs.com/wordpress/ “Lessfs : Brandon Snider ” https://launchpad.net/~brandonsnider/+archive/lessfs
Baixar agora