Solaris ボリュームマネージャの管理

第21章 ディスクセット (作業)

この章では、ディスクセットに関連する作業について説明します。 これらの作業に関連する概念については、第20章「ディスクセット (概要)」を参照してください。

ディスクセット (作業マップ)

次の作業マップに、Solaris ボリュームマネージャのディスクセットとSolaris Volume Manager for Sun Cluster マルチオーナーディスクセットを管理するために必要な手順を示します。 特に注記していない限り、すべてのコマンドは両方のディスクセットに使用できます。 マルチオーナーディスクセットに関連する作業には、Solaris ボリュームマネージャ GUI は使用できません。

作業 

説明 

参照先 

ディスクセットを作成する 

Solaris ボリュームマネージャの GUI か metaset コマンドを使ってディスクセットを作成します。

metaset -M コマンドを使用して、マルチオーナーディスクセットを作成します。

「ディスクセットを作成するには」

ディスクセットにディスクを追加する 

Solaris ボリュームマネージャの GUI か metaset コマンドを使用して、ディスクセットにディスクを追加します。

「ディスクセットにディスクを追加するには」

ディスクセットにホストを追加する  

Solaris ボリュームマネージャの GUI か metaset コマンドを使ってディスクセットにホストを追加します。

「ディスクセットにホストを追加するには」

ディスクセットに Solaris ボリュームマネージャのボリュームを作成する 

Solaris ボリュームマネージャの GUI か metainit コマンドを使ってディスクセットにボリュームを作成します。

「ディスクセットに Solaris ボリュームマネージャのコンポーネントを作成するには」

ディスクセットの状態をチェックする 

Solaris ボリュームマネージャの GUI か metastat コマンドを使ってディスクセットの状態をチェックします。

「ディスクセットの状態をチェックするには」

ディスクセットからディスクを削除する 

Solaris ボリュームマネージャの GUI か metaset コマンドを使用して、ディスクセットからディスクを削除します。

「ディスクセットからディスクを削除するには」

ディスクセットを取得する 

Solaris ボリュームマネージャの GUI か metaset コマンドを使ってディスクセットを取得します。

「ディスクセットを取得するには」

ディスクセットを解放する 

Solaris ボリュームマネージャの GUI か metaset コマンドを使ってディスクセットを解放します。

「ディスクセットを解放するには」

ディスクセットからホストを削除する 

Solaris ボリュームマネージャの GUI か metaset コマンドを使ってディスクセットからホストを削除します。

 

「ホストまたはディスクセットを削除するには」

ディスクセットを削除する 

Solaris ボリュームマネージャの GUI か metaset コマンドを使ってディスクセットから最後のホストを削除し、ディスクセットを削除します。

「ホストまたはディスクセットを削除するには」

ディスクセットをインポートする 

metaimport コマンドを使用して、ディスクセットについてのレポートを取得することによって、どのディスクセットをインポートできるかを判断したり、あるシステムから別のシステムにディスクセットをインポートしたりします。

「ディスクセットのインポート 」

ディスクセットの作成

Procedureディスクセットを作成するには

手順
  1. 「ディスクセットを使用するときの指針」を確認します。

  2. 次のどちらかの方法でディスクセットを作成します。

    • Solaris 管理コンソール内の「拡張ストレージ」から「ディスクセット (Disk Sets)」ノードを開きます。 「アクション (Action)」、「ディスクセットを作成 (Create Disk Set)」の順に選択し、ウィザードの指示に従います。 詳細は、オンラインヘルプを参照してください。

    • コマンド行から次の形式の metaset コマンドを実行して、ディスクセットを最初から作成します。


      metaset -s diskset-name -a -h -M hostname
      
      -s diskset-name

      metaset コマンドが使用するディスクセットの名前です。

      -a

      ディスクセットにホストを追加することを意味します。 Solaris ボリュームマネージャは、共有ディスクセットごとに 8 つまでのホストをサポートします。マルチオーナーディスクセットは、アプリケーションがサポートするホストの数によって制限されます。

      -M

      マルチオーナーディスクセットを作成することを意味します。


      マルチオーナーディスクセットは、Sun Cluster および Oracle9i Real Application Clusters で機能します。 Sun Cluster の互換性のあるリリースについては、http://wwws.sun.com/software/clusterを参照してください。


      -h hostname

      ディスクセットに追加する 1 つまたは複数のホストを指定します。 最初のホストを追加すると、ディスクセットが作成されます。 2 つめのホストはあとで追加できます。ただし、ディスクセット内のすべてのディスクが指定した hostname 内に存在しなければなりません。 hostname は、/etc/nodename ファイルに指定されている名前と同じでなければなりません。

      詳細は、metaset(1M) のマニュアルページを参照してください。

  3. metaset コマンドを実行して新しいディスクセットの状態をチェックします。


    # metaset
    

例 211 ディスクセットを作成する


# metaset -s blue -a -h lexicon              
# metaset
Set name = blue, Set number = 1

Host                Owner
  lexicon                

この例では、blue という共有ディスクセットをホスト lexicon から作成します。 metaset コマンドは状態を表示します。 この時点ではディスクセットの所有者はいません。 ディスクセットにディスクを追加するホストがデフォルトで所有者になります。



例 212 マルチオーナーディスクセットを作成する


# metaset -s red -a -M -h nodeone
# metaset
Multi-owner Set name = red, Set number = 1, Master = 

Host                Owner          Member
  nodeone                          Yes 

この例では、red というマルチオーナーディスクセットを nodeone というホストから作成します。 追加される各ホストは、このディスクセットのメンバーになります。 ディスクセットに最初にディスクを追加するホストがデフォルトでマスターノードになります。


ディスクセットの拡張

Procedureディスクセットにディスクを追加するには


注意  注意

32 ビットカーネルの Solaris ソフトウェア、または Solaris 9 4/03 より前のバージョンの Solaris オペレーティングシステムを実行する予定がある場合は、1T バイトを超えるディスクをディスクセットに追加しないでください。Solaris ボリュームマネージャでの大容量ボリュームのサポートについては、「Solaris ボリュームマネージャの大容量ボリュームのサポートについての概要」を参照してください。


ディスクセットに追加されるディスクは、次の条件を満たしている必要があります。

手順
  1. 「ディスクセットを使用するときの指針」を確認します。

  2. 次のどちらかの方法でディスクセットにディスクを追加します。

    • Solaris 管理コンソール内の「拡張ストレージ」から「ディスクセット (Disk Sets)」ノードを開きます。 変更するディスクセットを右クリックして、「プロパティ (Properties)」を選択します。 「ディスク (Disks)」タブを選択し、「ディスクを追加 (Add Disk)」をクリックして、ウィザードの指示に従います。 詳細は、オンラインヘルプを参照してください。

    • コマンド行から次の形式の metaset コマンドを実行して、ディスクセットにディスクを追加します。


      metaset -s diskset-name -a disk-name
      
      -s diskset-name

      metaset コマンドが使用するディスクセットの名前です。

      -a

      ディスクセットにディスクを追加することを意味します。

      disk-name

      ディスクセットに追加するディスクの名前です。 ディスク名の形式は、cxtxdx です。名前の最後にスライス識別子「sx」は付けません。 ドライブ名は、ディスクセットを共有するすべてのホストで共通でなければなりません。

      詳細は、metaset のマニュアルページ (metaset(1M)) を参照してください。

    ディスクセットに最初にディスクを追加するホストがディスクセットの所有者になります。


    注意  注意

    データが格納されているディスクを追加しないでください。このようなディスクをディスクセットに追加すると、その過程でディスクのパーティションが再分割され、データが破壊されることがあります。 詳細は、「例 2 つの共有ディスクセット」を参照してください。


  3. metaset コマンドを使用して、ディスクセットとディスクの状態を確認します。


    # metaset
    

例 213 ディスクセットにドライブを追加する


# metaset -s blue -a c1t6d0
# metaset
Set name = blue, Set number = 1

Host                Owner
  lexicon            Yes 

Drive               Dbase
  c1t6d0             Yes 

この例では、ホスト名は lexicon です。 共有ディスクセットの名前は blue です。 この時点でディスクセット blue に追加されているドライブは 1 つだけです。

コマンド行から複数のドライブを指定すれば、同時に複数のドライブを追加することもできます。 たとえば、次のように指定します。


# metaset -s blue -a c1t6d0 c2t6d0

Procedureディスクセットにホストを追加するには

Solaris ボリュームマネージャは、ディスクセット当たり最大で 4 つのホストをサポートします。 この手順では、1 つのホストがすでに接続されているディスクセットに別のホストを追加する手順について説明します。

手順
  1. 「ディスクセットを使用するときの指針」を確認します。

  2. 次のどちらかの方法でディスクセットにホストを追加します。

    • Solaris 管理コンソール内の「拡張ストレージ」から「ディスクセット (Disk Sets)」ノードを開き、変更するディスクセットを選択します。 変更するディスクセットを右クリックして、「プロパティ (Properties)」を選択します。 「ホスト (Hosts)」タブを選択し、「ホストを追加 (Add Host)」をクリックして、ウィザードの指示に従います。 詳細は、オンラインヘルプを参照してください。

    • コマンド行から次の形式の metaset コマンドを実行して、ディスクセットにホストを追加します。


      metaset -s diskset-name -a -h hostname
      
      -s diskset-name

      metaset コマンドが使用するディスクセットの名前です。

      -a

      ディスクセットにディスクを追加することを意味します。

      -h hostname

      ディスクセットに追加する 1 つまたは複数のホスト名を指定します。 最初のホストを追加すると、ディスクセットが作成されます。 ホスト名は、/etc/nodename ファイルに指定されている名前と同じである必要があります。

      詳細は、metaset のマニュアルページ (metaset(1M)) を参照してください。

  3. オプションを指定せずに metaset コマンドを実行して、ホストがディスクセットに追加されていることを確認します。


    # metaset
    

例 214 ディスクセットに別のホストを追加する


# metaset -s blue -a -h idiom
# metaset -s blue
Set name = blue, Set number = 1
 
Host                Owner
  lexicon                Yes
  idiom
 
Drive               Dbase
  c1t6d0             Yes 
  c2t6d0             Yes 

この例では、ホスト idiom をディスクセット blue に追加します。


Procedureディスクセットに Solaris ボリュームマネージャのコンポーネントを作成するには

ディスクセットを作成したら、ディスクセットに追加したディスクを使ってボリュームやホットスペア集合を作成できます。 この操作には、Solaris 管理コンソール内の「拡張ストレージ」かコマンド行ユーティリティを使用します。

手順

    次のどちらかの方法で、ボリュームなどの Solaris ボリュームマネージャのデバイスをディスクセット内に作成します。

    • Solaris 管理コンソール内の「拡張ストレージ」から「ボリューム (Volumes)」、「状態データベースの複製 (State Database Replicas)」、または「ホットスペアプール (Hot Spare Pools)」ノードを選択します。 「アクション (Action)」、「作成 (Create)」の順に選択し、ウィザードの指示に従います。 詳細は、オンラインヘルプを参照してください。

    • コマンド行ユーティリティを使ってディスクセット内にコンポーネントを作成します。この構文は、コマンドのすぐ後に -s diskset-name を指定することを除き、ディスクセットを使用しない場合の基本構文と同じです。


例 215 ディスクセットに Solaris ボリュームマネージャのボリュームを作成する


# metainit -s blue d11 1 1 c1t6d0s0
blue/d11: Concat/Stripe is setup
# metainit -s blue d12 1 1 c2t6d0s0
blue/d12: Concat/Stripe is setup
# metainit -s blue d10 -m d11           
blue/d10: Mirror is setup
# metattach -s blue d10 d12
blue/d10: submirror blue/d12 is attached

# metastat -s blue
blue/d10: Mirror
    Submirror 0: blue/d11
      State: Okay         
    Submirror 1: blue/d12
      State: Resyncing    
    Resync in progress: 0 % done
    Pass: 1
    Read option: roundrobin (default)
    Write option: parallel (default)
    Size: 17674902 blocks

blue/d11: Submirror of blue/d10
    State: Okay         
    Size: 17674902 blocks
    Stripe 0:
        Device              Start Block  Dbase State        Reloc  Hot Spare
        c1t6d0s0                   0     No    Okay                


blue/d12: Submirror of blue/d10
    State: Resyncing    
    Size: 17674902 blocks
    Stripe 0:
        Device              Start Block  Dbase State        Reloc  Hot Spare
        c2t6d0s0                   0     No    Okay                

この例では、ディスクセット blue にミラー d10 を作成します。ミラーは、サブミラー (RAID 0 デバイス) d11d12 からなります。


ディスクセットの保守

Procedureディスクセットの状態をチェックするには

手順

    次のどちらかの方法でディスクセットの状態をチェックします。

    • Solaris 管理コンソール内の「拡張ストレージ」から「ディスクセット (Disk Sets)」ノードを開きます。 監視するディスクセットを右クリックし、メニューから「プロパティ (Properties)」を選択します。 詳細は、オンラインヘルプを参照してください。

    • metaset コマンドを使用して、ディスクセットの状態を表示します。

      詳細については、metaset(1M) のマニュアルページを参照してください。


      ディスクセットの所有権は、ディスクセットを所有するホストだけに表示されます。



例 216 ディスクセットの状態をチェックする


red# metaset -s blue


Set name = blue, Set number = 1

Host                Owner
  idiom             Yes 

Drive               Dbase
  c1t6d0             Yes 
  c2t6d0             Yes 

metaset コマンドに -s オプションを指定して、その後に blue というディスクセットの名前を指定すると、そのディスクセットの状態情報が表示されます。 metaset コマンドを所有者側ホスト idiom から実行すると、idiom が実際にこのディスクセットの所有者であることがわかります。 metaset コマンドでは、ディスクセットに属するディスクも表示されます。

オプション指定せずに metaset コマンドを実行すると、すべてのディスクセットの状態が表示されます。


Procedureディスクセットからディスクを削除するには

ディスクセットを削除するためには、まず、ディスクセットからすべてのディスクを削除する必要があります。

手順

    metaset -s diskset-name コマンドを使用して、ディスクがディスクセットから削除されていることを確認します。


    # metaset -s blue
    

例 217 ディスクセットからディスクを削除する


lexicon# metaset -s blue -d c1t6d0
lexicon# metaset -s blue
 
Set name = blue, Set number = 1

Host                Owner
  lexicon            
	idiom 

Drive               Dbase
  c2t6d0             Yes 
 

この例では、ディスクセット blue からディスクを削除します。


Procedureディスクセットを取得するには


このオプションはマルチオーナーディスクセットには使用できません。


手順

    次のどちらかの方法でディスクセットを取得します。

    • Solaris 管理コンソール内の「拡張ストレージ」から「ディスクセット (Disk Sets)」ノードを開きます。 取得するディスクセットを右クリックし、メニューから「所有権を取得 (Take Ownership)」を選択します。 詳細は、オンラインヘルプを参照してください。

    • 次の形式の metaset コマンドを実行します。


      metaset -s diskset-name -t
      
    -s diskset-name

    metaset コマンドが使用するディスクセットの名前です。

    -t

    ディスクセットを取得することを意味します。

    -f

    ディスクセットを強制的に取得することを意味します。

    詳細は、metaset(1M) のマニュアルページを参照してください。

    ディスクセットのあるホストがそのディスクセットを取得すると、このディスクセットのほかのホストは、このディスクセットのディスクのデータにアクセスできません。

    metaset コマンドのデフォルト動作では、 他方のホストがディスクセットを解放できなければ、このホストからディスクセットを取得することはできません。

    ディスクセットを強制的に取得する場合は、-f オプションを指定します。 このオプションを指定すると、ディスクセットは、別のホストが所有しているか否かにかかわらず、このホストによって取得されます。 この方法は、通常、ディスクセットを共有するホストの 1 つが停止したり、通信していないときに使用されます。 ディスクセットを強制的に取得させられた他のホストは、このディスクセットの入出力操作を試みたときにパニック状態になります。


    ディスクセットの所有権は、ディスクセットを所有するホストだけに表示されます。



例 218 ディスクセットを取得する


lexicon# metaset
...
Set name = blue, Set number = 1
 
Host                Owner
  lexicon
  idiom
...
lexicon# metaset -s blue -t
lexicon# metaset
...
Set name = blue, Set number = 1
 
Host                Owner
  lexicon                Yes
  idiom
...

この例では、ホスト lexicon がホスト idiom と通信し、idiom がディスクセットを解放したことを確認してから、ディスクセットを取得します。

この例の場合、ホスト idiom がディスクセット blue を所有していたとしても、出力の「所有者 (Owner)」欄はブランクになります。 metaset コマンドは、このコマンドを実行したホスト (ほかのホストとは関係なく) がディスクセットを所有しているかどうかだけを表示します。



例 219 ディスクセットを強制的に取得する


# metaset -s blue -t -f

この例では、ホストがほかのホストと通信せずに、ディスクセットを取得します。 つまり、このディスクセットのディスクは警告なしに取得されます。 他のホストがディスクセットを所有していた場合には、そのホストが、ディスクセットの入出力操作を試みたときにパニックを引き起こします。


Procedureディスクセットを解放するには

ディスクセットの物理ディスクを保守する場合は、ディスクセットをあらかじめ解放しておくと便利です。 ディスクセットを解放すると、そのディスクセットはホストからアクセスできなくなります。 ディスクセットを共有する両方のホストがディスクセットを解放すると、そのディスクセットに設定されているボリュームやホットスペア集合にはどちらのホストからもアクセスできなくなります。ただし、c*t*d* という名前を使えば、どちらのホストからでもディスクに直接アクセスできます。


このオプションはマルチオーナーディスクセットには使用できません。


手順
  1. 「ディスクセットを使用するときの指針」を確認します。

  2. 次のどちらかの方法でディスクセットを解放します。

    • Solaris 管理コンソール内の「拡張ストレージ」から「ディスクセット (Disk Sets)」ノードを開きます。 解放するディスクセットを右クリックし、メニューから「所有権を開放 (Release Ownership)」を選択します。 詳細は、オンラインヘルプを参照してください。

    • 次の形式の metaset コマンドを実行して、ディスクセットの所有権を解放します。


      metaset -s  diskset-name -r
      
      -s diskset-name

      metaset コマンドが使用するディスクセットの名前です。

      -r

      ディスクセットを解放することを意味します。 ディスクセット内のすべてのディスクの予約が取り消されます。 ディスクセット内のボリュームにはアクセスできなくなります。

      詳細は、metaset(1M) のマニュアルページを参照してください。


      ディスクセットの所有権は、ディスクセットを所有するホストだけに表示されます。


  3. オプションを指定せずに metaset コマンドを実行して、ディスクセットがこのホストから解放されていることを確認します。


    # metaset
    

例 2110 ディスクセットを解放する


lexicon# metaset -s blue -r
lexicon# metaset -s blue
 
Set name = blue, Set number = 1

Host                Owner
  lexicon            
	idiom 

Drive               Dbase
  c1t6d0             Yes 
  c2t6d0             Yes 
 

この例では、ディスクセット blue を解放します。 この時点では、ディスクセットの所有者がいないことに注意してください。 ホスト lexicon から状態を調べると、誤解を招くおそれがあります。 これは、ホストが調査できるのは、そのホストがディスクセットを所有しているかどうかだけだからです。 たとえば、ホスト idiom がディスクセットを取得したとしても、ホスト lexicon からそのことを知ることはできません。 この場合、取得していることを知ることができるのは、ホスト idiom だけです。


Procedureホストまたはディスクセットを削除するには

ディスクセットを削除する場合は、ディスクセットにディスクが含まれていたり、ディスクセットにほかのホストが接続していたりしてはなりません。 最後のホストを削除すると、ディスクセットは削除されます。

手順
  1. 次のどちらかの方法でディスクセットからホストを削除し、そのホストが最後のホストである場合は、ディスクセットも削除します。

    • Solaris 管理コンソール内の「拡張ストレージ」から「ディスクセット (Disk Sets)」ノードを開きます。 解放するディスクセットを右クリックし、メニューから「削除 (Delete)」を選択します。 詳細は、オンラインヘルプを参照してください。

    • 次の形式の metaset コマンドを実行してディスクセットからホストを削除し、 そのホストが最後のホストである場合は、ディスクセットも削除します。


      metaset -s diskset-name -d -h hostname
      
      -s diskset-name

      metaset コマンドが使用するディスクセットの名前です。

      -d

      ディスクセットからホストを削除することを意味します。

      -h hostname

      削除するホストの名前を指定します。


      # metaset -s blue -d idiom
      

      詳細は、metaset(1M) のマニュアルページを参照してください。

  2. metaset コマンドを実行して、このホストがディスクセットから削除されていることを確認します。 出力には、現在の (所有者側) ホストだけが表示され、 他のホストがすでに削除されていることがわかります。


    # metaset -s blue
    Set name = blue, Set number = 1
    
    Host                Owner
      lexicon            Yes 
    
    Drive               Dbase
      c1t2d0             Yes 
      c1t3d0             Yes 
      c1t4d0             Yes 
      c1t5d0             Yes 
      c1t6d0             Yes 
      c2t1d0             Yes

例 2111 ディスクセットから最後のホストを削除する


lexicon# metaset -s blue -d lexicon
lexicon# metaset -s blue
 
metaset: lexicon: setname "blue": no such set 

この例では、ディスクセット blue から最後のホストを削除します。


ディスクセットのインポート

metaimport コマンドを使用すると、あるシステムから別のシステムにディスクセットをインポートできます。


このオプションはマルチオーナーディスクセットには使用できません。


Procedureインポートに利用できるディスクセットのレポートを出力するには

手順
  1. スーパーユーザーになります。

  2. インポートに利用できるディスクセットについてのレポートを取得します。


    # metaimport -r -v
    
    -r

    システム上にあってインポートに利用できる未構成のディスクセットのレポートを提供します。

    -v

    状態データベースの複製の場所についての詳細な情報と、システム上にあってインポートに利用できる未構成のディスクセットのディスクの状態についての詳細な情報を提供します。


例 2112 インポートに利用できるディスクセットを報告する

次の例では、インポートに利用できるディスクセットについてのレポートを出力する方法を示します。


# metaimport -r
Drives in diskset including disk c1t2d0:
  c1t2d0
  c1t3d0
  c1t8d0
More info:
  metaimport -r -v c1t2d0
Import:
  metaimport -s newsetname> c1t2d0

# metaimport -r -v c1t2d0
Import: metaimport -s newsetname> c1t2d0
Last update: Mon Dec 29 14:13:35 2003
Device       offset       length replica flags
c1t2d0           16         8192      a        u     
c1t3d0           16         8192      a        u     
c1t8d0           16         8192      a        u     

Procedureあるシステムから別のシステムにディスクセットをインポートするには

手順
  1. スーパーユーザーになります。

  2. ボリューム名が nmd 値の範囲内であるかどうかを確認します。 必要であれば、/kernel/drv/md.conf 内の nmd フィールドを変更します。 詳細は、「デフォルトのボリューム数を増やすには」を参照してください。

  3. ディスクセットがインポートに利用できることを確認します。


    # metaimport -r -v
    
  4. 利用できるディスクセットをインポートします。


    # metaimport -s diskset-name drive-name
    
    - s diskset-name

    作成するディスクセットの名前です。

    drive-name

    インポートするディスクセットの状態データベースの複製を含むディスク (c#t#d#) を指定します。

  5. ディスクセットがインポートされたことを確認します。


    # metaset -s diskset-name
    

例 2113 ディスクセットをインポートする

次の例では、ディスクセットをインポートする方法を示します。


# metaimport -s red c1t2d0
Drives in diskset including disk c1t2d0:
  c1t2d0
  c1t3d0
  c1t8d0
More info:
  metaimport -r -v c1t2d0
# metaset -s red


Set name = red, Set number = 1

Host                Owner
  lexicon            Yes

Drive    Dbase

c1t2d0   Yes  

c1t3d0   Yes  

c1t8d0   Yes