技術ブログ
目次
注意! 本エントリでは、サポートされない手順について記載しています!
⇒ KROWN:158258 OracleVM 3 での Oracle VM Server コマンドラインから許可されている操作(※:参照にはサポート契約が必要)
Oracle VM Serverのローカルストレージ(DAS)に記憶域リポジトリを構成する場合、記憶域リポジトリはOCFS2でフォーマットされます。
OCFS2とは Oracle Cluster File System Release 2 の略称で、Oracleから無償で提供さているLinux向けクラスタファイルシステムです。OCFS2は様々な機能を提供していますが、reflink機能はVM管理に非常に有効です。
reflinkは、Copy-On-Writeとハードリンクを組み合わせたようなファイルの複製機能です。
reflinkの動作については
OCFS2/Reflink-Illustrated
に分かりやすい説明があるため確認してみてください。
仮想化環境では、VMを構成する仮想ディスクファイルのバックアップ、クローンなどの操作が必要ですが、
OFCS2 reflinkを使用すると、これらを効率的に実行できます。
なお、このreflinkという機能は、はOracle VM向けに作られた機能であることが、Oracle の
Linux and Virtualization Engineering シニアVice Presidentである Wim Coekaerts 氏により明らかにされています。
The reason we implemented reflink is for Oracle VM
from https://blogs.oracle.com/wim/entry/ocfs2_reflink
バックアップをreflinkとして取得します。クローン実行時と同様に、これらの操作は非常に時間で実行できます。
ls -l l54x64a/*
mkdir l54x64a_20121120BK/
reflink l54x64a/* l54x64a_20121120BK/
バックアップからのリストアが必要になった場合も、reflinkを使用して短時間で実行できます。
rm -fr l54x64a/*
reflink l54x64a_20121120BK/* l54x64a/
リストアにreflinkを使用していますので、何度でもバックアップ時点の状態に戻すことができます。
reflinkを使用する前は、tar+gzで仮想ディスクファイルを含むすべてのVM構成ファイルをアーカイブしておき、これを展開することで、過去の時点へのバックアップとリストアを実行していました。この方法では大量のディスクI/Oが必要となるため、非常に時間を要していました。reflinkを使用することで処理時間の大幅な短縮と、ディスク領域使用量の大幅な削減を実現できます。
ただし、万が一OCFS2に問題があった場合に備え、従来のtar+gzのバックアップも併用しています。
なお、VMのバックアップはOracle VM Managerでは機能が用意されていないようです。VMをテンプレート化することが代替方法ようですが、コーソル検証環境ではあまりOracle VM Managerを積極的に使用していないので、きちんと調べていません。
Blogエントリ コーソル検証環境ではOracle VMを積極的に活用しています で仮想化環境において環境を復旧できる利点についてお伝えしました。
reflinkを使用することで復旧を「高速に」実行できます。このため、より気軽に、いろいろなことを皆が試すことができるようになっています。エンジニアにとって、気軽にTry & Errorできる環境はとても重要です。
reflinkの機能はVMのバックアップやリストアだけではなく、VMのクローニングにも使えます。
ls -l l54x64a/*
mkdir l54x64a_new/
reflink l54x64a/* l54x64a_new/
xm create l54x64a_new/vm.cfg
xm create l54x64a/vm.cfg
なお、バックアップと違い、クローン操作はOracle VM Managerでもサポートされており、ocfs2 reflinkを活用しています。これについては次のエントリで書く予定です。