2006年 4月 18日 火曜日
やっぱり Sun がスキ!
SVMでILM
SVMで手軽に始めるILM
現在コンピュータストレージの世界では、急増するデータをいかに 効率的に保存・管理するかが大きな課題となっており、情報の生成から 破棄まで、時間と共に変化する価値と特性に応じてデータを動的かつ 最適に配置するという、情報ライフサイクルマネジメント (ILM : Information Lifecycle Management) の考え方が注目を集めています。 ILM を実現する技術としては、ニアライン・ストレージ (ディスクと テープの中間的な位置付けのストレージ) としての大容量 SATAディスクや、 アクセス頻度に応じて自動的にデータをテープライブラリへ移動させる アーカイビング・ソフトウェアなどがあります。一般的にデータ管理の 課題を抱えるシステムが大型システムであるため、ILM の実現には高機能な ディスクアレイや高額なソフトウェアが必要であると受け取られがちですが、 実は非常に手軽に使えて、かつPCクラスの小型システムでも有効性を実感 できる技術なのです。以下に Solaris のボリューム管理機能である Solaris Volume Manager (SVM) を使った ILM をご紹介します。是非お手元のマシンで ILM の良さを実感してください。
Solaris Volume Manager を使った ILM ソリューション
一口に ILM と言っても、ファイル単位で細かくアーカイビングする ものや、ボリューム(ファイルシステム)単位でディスク間を移動させる ものなど、いろいろなソリューションがあります。ここでご紹介するは、 ボリューム単位でディスク間を移動させるもので、一旦 SVM の管理下に 入ったボリュームは、システムを停止させずに極めて簡単に物理ディスク間を 移動できるようになります。例えば次のような状況においてこの仕組みが効果を 発揮します。
- 新型ディスク装置を導入したのでボリュームを移行したいが、システム停止は許されない。
- 旧版アプリケーションへのアクセスが減ったため、ボリュームごと SATA ストレージへ移動したい。
- 本番データのクローンを使ってテストを行いたい。
- ニアラインストレージを使って Disk-to-Disk オンラインバックアップを実現したい。
- 古いディスクを有効活用したい。
以下の例では、SVM を使って2台のディスク間でボリューム移動を行います。 OS は Solaris 10 1/06 を使用しています。
jws50# cat /etc/release
Solaris 10 1/06 s10s_u1wos_19a SPARC
Copyright 2005 Sun Microsystems, Inc. All Rights Reserved.
Use is subject to license terms.
Assembled 07 December 2005
jws50# format
Searching for disks...done
AVAILABLE DISK SELECTIONS:
0. c0t0d0
/pci@1c,600000/scsi@2/sd@0,0
1. c0t1d0
/pci@1c,600000/scsi@2/sd@1,0
Specify disk (enter its number): ^D
1つ目のディスクスライス (Disk#0) は c0t0d0s5 (5.0 GB)を使用します。 UFS ファイルシステムとして /data にマウントされています。
Part Tag Flag Cylinders Size Blocks 5 unassigned wm 20328 - 23957 5.00GB (3630/0/0) 10487070 jws50# df -k|grep data /dev/dsk/c0t0d0s5 5163909 266337 4845933 6% /data
2つ目のディスクスライス (Disk#1) は少し容量の大きい c0t1d0s3 (6.0 Gb)を使用します。 現状未使用で、この後 Disk#0 のデータがここへ移行されます。
Part Tag Flag Cylinders Size Blocks 3 unassigned wm 16840 - 21195 6.00GB (4356/0/0) 12584484
ボリュームの SVM への取り込み
Disk#0 をマウントしたまま SVM の管理下に置きます。
jws50# metainit -f d91 1 1 c0t0d0s5
d91: 連結/ストライプがセットアップされます
jws50# metastat
d91: Concat/Stripe
サイズ: 10487070 ブロック (5.0 GB)
ストライプ 0:
デバイス 開始ブロック Dbase Reloc
c0t0d0s5 0 No Yes
Device Relocation Information:
Device Reloc Device ID
c0t0d0 はい id1,sd@SSEAGATE_ST336704LSUN36G_3CD1G92300002128HRPP
さらにこれをサブミラーとするミラーボリュームを作成します。
jws50# metainit d81 -m d91
d81: ミラーがセットアップされます
jws50# metastat
d81: ミラー
サブミラー 0: d91
状態: 正常
パス: 1
読み込みオプション: roundrobin (デフォルト)
書き込みオプション: parallel (デフォルト)
サイズ: 10487070 ブロック (5.0 GB)
d91: d81 のサブミラー
状態: 正常
サイズ: 10487070 ブロック (5.0 GB)
ストライプ 0:
デバイス 開始ブロック Dbase 状態 Reloc ホットスペア
c0t0d0s5 0 No 正常 Yes
Device Relocation Information:
Device Reloc Device ID
c0t0d0 はい id1,sd@SSEAGATE_ST336704LSUN36G_3CD1G92300002128HRPP
/data がこのミラーボリューム d81 を参照するよう /etc/vfstab を編集し、 /data をマウントし直します。
jws50# df -k|grep data /dev/dsk/c0t0d0s5 5163909 266337 4845933 6% /data jws50# umount /data jws50# mount /data jws50# df -k|grep data /dev/md/dsk/d81 5163909 266337 4845933 6% /data
残念ながらここで umount を行うため、このボリュームに依存するアプリケー ションは一度停止する必要があります。しかし一度ミラーボリュームを作って しまえば今後この操作は不要です。
次に2つ目のディスクスライス (Disk#1) を SVM に取り込みます。
jws50# metainit d92 1 1 c0t1d0s3
d92: 連結/ストライプがセットアップされます
jws50# metastat
d81: ミラー
サブミラー 0: d91
状態: 正常
パス: 1
読み込みオプション: roundrobin (デフォルト)
書き込みオプション: parallel (デフォルト)
サイズ: 10487070 ブロック (5.0 GB)
d91: d81 のサブミラー
状態: 正常
サイズ: 10487070 ブロック (5.0 GB)
ストライプ 0:
デバイス 開始ブロック Dbase 状態 Reloc ホットスペア
c0t0d0s5 0 No 正常 Yes
d92: Concat/Stripe
サイズ: 12584484 ブロック (6.0 GB)
ストライプ 0:
デバイス 開始ブロック Dbase Reloc
c0t1d0s3 0 No Yes
Device Relocation Information:
Device Reloc Device ID
c0t1d0 はい id1,sd@SSEAGATE_ST336605LSUN36G_3FP14N3H00002224GE8R
c0t0d0 はい id1,sd@SSEAGATE_ST336704LSUN36G_3CD1G92300002128HRPP
データの再同期とボリュームの切り替え
Disk#1 (d92) を先ほどのミラーボリュームに追加します。自動的に同期処理が 開始されます。
jws50# metattach d81 d92
d81: サブミラー d92 is attached
jws50# metastat
d81: ミラー
サブミラー 0: d91
状態: 正常
サブミラー 1: d92
状態: 再同期中
再同期実行中: 0 % 完了
パス: 1
読み込みオプション: roundrobin (デフォルト)
書き込みオプション: parallel (デフォルト)
サイズ: 10487070 ブロック (5.0 GB)
d91: d81 のサブミラー
状態: 正常
サイズ: 10487070 ブロック (5.0 GB)
ストライプ 0:
デバイス 開始ブロック Dbase 状態 Reloc ホットスペア
c0t0d0s5 0 No 正常 Yes
d92: d81 のサブミラー
状態: 再同期中
サイズ: 12584484 ブロック (6.0 GB)
ストライプ 0:
デバイス 開始ブロック Dbase 状態 Reloc ホットスペア
c0t1d0s3 0 No 正常 Yes
Device Relocation Information:
Device Reloc Device ID
c0t1d0 はい id1,sd@SSEAGATE_ST336605LSUN36G_3FP14N3H00002224GE8R
c0t0d0 はい id1,sd@SSEAGATE_ST336704LSUN36G_3CD1G92300002128HRPP
同期処理完了後、元のディスクをミラーボリュームから切り離します。
jws50# metadetach d81 d91
d81: サブミラー d91 は切断中
jws50# metaclear d91
d91: 連結/ストライプがクリアされます
jws50# metastat
d81: ミラー
サブミラー 1: d92
状態: 正常
パス: 1
読み込みオプション: roundrobin (デフォルト)
書き込みオプション: parallel (デフォルト)
サイズ: 10487070 ブロック (5.0 GB)
d92: d81 のサブミラー
状態: 正常
サイズ: 12584484 ブロック (6.0 GB)
ストライプ 0:
デバイス 開始ブロック Dbase 状態 Reloc ホットスペア
c0t1d0s3 0 No 正常 Yes
Device Relocation Information:
Device Reloc Device ID
c0t1d0 はい id1,sd@SSEAGATE_ST336605LSUN36G_3FP14N3H00002224GE8R
これでボリュームの移行が完了しました。
ところで、Disk#1 の容量が少し大きかった (6.0 GB) ことを思い出してください。 データ移行と同時にファイルシステムの容量も拡張しておきましょう。
ボリュームとファイルシステムの拡張
metattach
jws50# metattach d81
jws50# metastat
d81: ミラー
サブミラー 1: d92
状態: 正常
パス: 1
読み込みオプション: roundrobin (デフォルト)
書き込みオプション: parallel (デフォルト)
サイズ: 12584484 ブロック (6.0 GB)
d92: d81 のサブミラー
状態: 正常
サイズ: 12584484 ブロック (6.0 GB)
ストライプ 0:
デバイス 開始ブロック Dbase 状態 Reloc ホットスペア
c0t1d0s3 0 No 正常 Yes
Device Relocation Information:
Device Reloc Device ID
c0t1d0 はい id1,sd@SSEAGATE_ST336605LSUN36G_3FP14N3H00002224GE8R
jws50#
ミラーボリュームの容量が 6.0 GB に増えました。今度は growfs コマンドを使って ファイルシステムを拡張します。
jws50# df -k|grep data /dev/md/dsk/d81 5163909 193121 4919149 4% /data jws50# jws50# growfs -M /data /dev/md/rdsk/d81 警告: 最終シリンダで 4572 セクタが割り当てられません。 /dev/md/rdsk/d81: 全セクター数: 12584484 (シリンダ数: 2049、トラック数: 48、セクター数: 128) 6144.8MB、129 シリンダグループ (16 c/g, 48.00MB/g, 5824 i/g) スーパーブロックのバックアップの位置 (fsck -F ufs -o b=# のため) : 32, 98464, 196896, 295328, 393760, 492192, 590624, 689056, 787488, 885920, 11705248, 11803680, 11902112, 12000544, 12098976, 12197408, 12295840, 12394272, 12492704, 12582944 jws50#
df コマンドを使ってファイルシステムが拡張されたことを確認します。
jws50# df -k|grep data /dev/md/dsk/d81 6196247 251609 5892999 5% /data
SVM を使って手軽に ILM を実現する例をご紹介しましたが、大規模なシステムでは やはり管理が複雑になってしまうかも知れません。このような場合は SAN によってストレージを統合し、ストレージ側の ILM 機能で一元管理した方が良いでしょう。 データ移行に加え、差分データコピーや外部ストレージ接続といった強力な機能を持つ Sun StorEdge 6920 や Sun StorEdge 9985 などがお薦めです。システム規模とご予算に 応じてお選びください。
Posted at 08:00午後 4 18, 2006 by masahiko in Sun | 投稿されたコメント[0]