共有データ・ブロックを使用したファイルのコピー
--reflinkオプションを指定してcpコマンドを使用して、XFSファイル・システムの同じファイル内にファイルの軽量コピーを作成します。
なお、Oracle Linuxでは、mkfs.xfsコマンドを使用してフォーマットするときは、デフォルトでreflink機能が有効になります。
--reflinkオプションは、コピーオンライトメカニズムを利用してディスク領域を節約し、ほぼ瞬時にコピー操作を実行します。XFSファイル・システムでは、ファイル・データの完全なコピーの作成や、ファイル内のinodeを指し示するリンクの作成を行わずに、既存のファイルと同じディスク・ブロックを共有する新しいinodが作成されます。結果となるファイルは、元のファイルのコピーのように見えますが、元のデータ・ブロックの複製はされません。--reflinkオプションを使用してコピーした後、いずれかのファイルに書き込むと、ファイル・システムは、書込み前にブロックのコピーを作成し、他のファイルの内容を保持します。
リリンク機能の動作の詳細は、https://blogs.oracle.com/linux/xfs-data-block-sharing-reflinkを参照してください。
fooという名前のファイルの軽量コピーをbarという名前のファイルに作成するには、次を実行します:
cp --reflink foo bar
結果のファイルbarは、元のファイルfooのサイズに関係なく、余分なディスク領域を使用せず、瞬時に作成されます。ディスク領域は、各ファイルの書込み先として使用されます。