MIRACLE

メールサービス申込 ユーザー登録&ログイン パートナー情報
お問い合わせ FAQ サイトマップ
MIRACLE LINUXの特長 製品紹介 サービス案内 購入 サポート 技術フォーラム

テクノロジー情報

2004年7月16日
MIRACLE LINUX V3.0におけるボリュームシャドーコピー機能
Standard Edition V2.1 対応

MIRACLE LINUX V3.0におけるボリュームシャドーコピー機能

[対象となる製品のバージョン]

 MIRACLE LINUX V3.0

[説明]

ボリュームシャドーコピー機能とは?

Windows Server 2003が出荷されたときのテレビコマーシャルでボリュームシャドーコピーを盛んにアピールしていましたが、この大変便利なシャドーコピー機能がMIRACLE LINUX V3.0から利用できるようになりました。

今回はこの機能の利用方法を紹介します。

この機能はファイルサーバのデータを定期的にスナップショットを作成する機能ですが、シャドーコピー機能では専用のWindowsクライアントから、その時点のファイルを参照したり、戻したりすることができます。

詳細は以下のWebも参考にして下さい。
http://www.microsoft.com/japan/windowsserver2003/techinfo/overview/scr.mspx
(新しくウィンドウが開きます。)

例えば図1のようにファイルやディレクトリのプロパティから「以前のファイル」として取り出したり、元に戻すことが可能になります。


図1

LVM(論理ボリュームマネージャ)で構成されたボリューム(ディレクトリ)に対し、スナップショットを作成するとスナップショット領域にその時点での元領域にあるファイルのコピーが作成されます。
実態は元ファイルへのハードリンクのため、スナップショット作成時点ではディスク領域をほとんど消費しません。
数十ギガバイトの領域のスナップショットを作成しても数メガバイトの領域があれば良く、作成もあっという間に終了します。

スナップショット作成後、そのファイルが更新されると更新前のファイルがスナップショット領域に移動され、初めてディスク領域が消費されるのです。
このためスナップショット領域として必要なディスク容量は元ディレクトリの大きさに関係なく、スナップショットの作成間隔の間に更新されるファイルサイズの合計分の領域があればいいことになります。

このスナップショットを作成する機能はLVMがもっていますが、通常のファイルシステムの場合、スナップショットを作成する時はファイルアクセスを停止させる必要があり、Sambaデーモンを停止させるか、OSをシングルユーザモードに変更する必要があります。

ところがファイルシステムとしてXFSを利用している場合は、XFSにはxfs_freezeという機能を持っており、ファイルアクセスを一時的に停止してスナップショットを作成できます。
つまりXFSとLVMを組み合わせればWindows Server 2003と同じように業務運用中に(Sambaを止めずに)シャドーコピー(スナップショット)作成ができます。

シャドーコピー機能を使うための要件

MIRACLE LINUX V3.0でシャドーコピー機能を利用するには、サーバ上でSambaを動作させますが、要件は以下の通りとなります。

◎Sambaサーバ側の要件

◎Windowsクライアント側の要件

  • Windows XP Professional またはWindows 2000 (Service Pack 3 以降)
  • 以下のWindowsシャドウコピークライアントをインストールしておくこと。

http://www.microsoft.com/japan/windowsserver2003/downloads/shadowcopyclient.mspx
(新しくウィンドウが開きます。)

シャドーコピー機能の使い方

では、このシャドーコピー機能の使い方を解説しましょう。

◎ファイルシステムの設定

まずSambaの共有とするディレクトリをLVM+XFSで構成させる必要があります。
MIRACLE LINUX V3.0の場合は以下の手順でインストール時にLVM設定が可能です。

コマンドでの詳細な管理はMIRACLE LINUX V3.0の「サーバ構築・運用ガイド」 および以下を参照して下さい。
http://www.linux.or.jp/JF/JFdocs/LVM-HOWTO.html
(新しくウィンドウが開きます。)

(1) LVMの物理ボリューム(PV)を作成

図2のようにパーティションをLVMの物理ボリューム(PV)として作成します。


図2.物理ボリューム(PV)の作成

作成されると図3のように表示されます。


図3.LVM PVが作成された

(2) ボリュームグループの作成

先に作成した物理ボリュームからボリュームグループを作成します。
この時、複数個の物理ボリュームを1つのボリュームグループとしてまとめることもできます。

(3) 論理ボリュームの作成

物理ボリュームの中に論理ボリュームを作成します。
図4の例では物理ボリュームVolume00の中に/homeを論理ボリュームLogVol00と作成しています。


図4.物理ボリュームの中に論理ボリュームを作成


図5.論理ボリューム作成後



図6.LVM設定完了

ここでの注意点として、物理ボリュームをすべて論理ボリュームに割り付けるのでは無く、スナップショットを作成するために空きを残しておくことです。

◎Sambaの設定

共有の設定に vfs objects = shadow_copy を1行加えるだけです。
ただし、スナップショット領域は共有のディレクトリにマウントされている必要があるので、ユーザホーム機能([homes]セクション)にシャドーコピー機能は利用できません。

図7に設定例を示します。

[PUBLIC]
    path = /home
    comment =
ファイルのプロパティから以前のファイルが取り出せます
    vfs objects = shadow_copy

◎シャドーコピーの作成

実際にファイルのプロパティから「以前のファイル」を取り出すには、サーバ側で定期的にスナップショットを作成する必要があります。

図8にスクリプトの例をあげます。
ここでは、ボリュームグループをVolume00、論理ボリュームをLogVol00、共有するディレクトリを/homeとした場合の例です。
必要に応じて、変数VGNMAE、LVNAME、LVDIR、SNAPSIZEを変更下さい。

図8.シャドーコピー作成スクリプト

#!/bin/bash
VGNMAE=Volume00
LVNAME=LogVol00
LVDIR=/home
SNAPNAME=`TZ=GMT date +%Y.%m.%d-%H.%M.%S`
SNAPDIR=$LVDIR/@GMT-$SNAPNAME
SNAPSIZE=10M
xfs_freeze -f $LVDIR
lvcreate -L $SNAPSIZE -s -n $SNAPNAME /dev/$VGNMAE/$LVNAME
xfs_freeze -u $LVDIR
mkdir $SNAPDIR
mount -o nouuid,ro /dev/$VGNMAE/$SNAPNAME $SNAPDIR

このスクリプトはジョブスケジューラーのcronを使って定期的に実行します。(週に1回、日に1回、日に2回など)。
もし、毎日スナップショットを取りたければ、/etc/cron.daily/に上記スクリプトを作成します。
細かい曜日や時間が指定したければ、/etc/crontab にコマンドを指定します。

もちろん不要になったスナップショット領域も以下のように定期的に削除するようにしてください。

#!/bin/bash
VGNMAE=Volume00
SNAPNAME=$1
SNAPDIR=`mount | grep /dev/$VGNMAE/$SNAPNAME | cut -d' ' -f3`
/bin/umount $SNAPDIR
lvremove -f /dev/$VGNMAE/$SNAPNAME
rmdir $SNAPDIR

[更新履歴]

 2004/07/28 修正
 2004/07/16 新規作成


会社情報 採用情報 個人情報保護方針 情報セキュリティ基本方針 商標等取り扱い事項 English
Copyright(c)2000-2013 MIRACLE LINUX CORPORATION. All Rights Reserved.