Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 26.8Mb
PDF (A4) - 26.9Mb
HTML Download (TGZ) - 7.1Mb
HTML Download (Zip) - 7.2Mb


MySQL 5.6 リファレンスマニュアル  /  ...  /  ディスクデータオブジェクトでのシンボリックリンクの使用

18.5.12.2 ディスクデータオブジェクトでのシンボリックリンクの使用

データノードファイルシステムを Undo ログファイルおよびテーブルスペースデータファイルから分離し、これらを別々のディスク上に配置すると、ディスクデータストレージを使用する MySQL Cluster のパフォーマンスを大幅に改善できます。旧バージョンの MySQL Cluster では、これに対する直接的なサポートはありませんでしたが、このセクションで説明するようにシンボリックリンクを使用すれば、このような分離を実現できました。MySQL Cluster では、このためにシンボリックリンクを使用する必要性をなくすデータノード構成パラメータ FileSystemPathDDFileSystemPathDataFiles、および FileSystemPathUndoFiles がサポートされています。これらのパラメータについての詳細は、ディスクデータのファイルシステムパラメータを参照してください。

クラスタ内の各データノードは、config.ini ファイルに定義されたデータノードの DataDir にある ndb_node_id_fs という名前のディレクトリに、ファイルシステムを作成します。この例では、各データノードホストが /data0/data1、および /data2 というエイリアスが付けられた 3 台のディスクを持ち、クラスタの config.ini に次のエントリが含まれていると仮定します。

[ndbd default]
DataDir= /data0

ここでの目的は、各データノードホスト上で、/data1 にすべてのディスクデータログファイル、/data2 にすべてのディスクデータデータファイルを配置することです。

注記

この例では、クラスタのデータノードホストではすべて、Linux オペレーティングシステムが使用されていると仮定します。その他のプラットフォームでは、ここで示したコマンドをオペレーティングシステムのコマンドで置き換える必要がある場合があります。

これを実現するには、次のステップを実行します。

  • データノードファイルシステムで、ほかのドライブを指しているシンボリックリンクを作成します。

    shell> cd /data0/ndb_2_fs
    shell> ls
    D1  D10  D11  D2  D8  D9  LCP
    shell> ln -s /data0 dnlogs
    shell> ln -s /data1 dndata

    この時点で、次の 2 つのシンボリックリンクが表示されます。

    shell> ls -l --hide=D*
    lrwxrwxrwx 1 user group   30 2007-03-19 13:58 dndata -> /data1
    lrwxrwxrwx 1 user group   30 2007-03-19 13:59 dnlogs -> /data2

    ここでは、ノード ID が 2 のデータノードの場合のみを示していますが、これをデータノードで実行する必要があります。

  • ここで、mysql クライアントで、次に示すようにシンボリックリンクを使用してログファイルグループおよびテーブルスペースを作成します。

    mysql> CREATE LOGFILE GROUP lg1
        ->    ADD UNDOFILE 'dnlogs/undo1.log'
        ->    INITIAL_SIZE 150M
        ->    UNDO_BUFFER_SIZE = 1M
        ->    ENGINE=NDBCLUSTER;
    
    mysql> CREATE TABLESPACE ts1
        ->    ADD DATAFILE 'dndata/data1.log'
        ->    USE LOGFILE GROUP lg1
        ->    INITIAL_SIZE 1G
        ->    ENGINE=NDBCLUSTER;

    次に示すように、ファイルが正しく作成および配置されたことを確認します。

    shell> cd /data1
    shell> ls -l
    total 2099304
    -rw-rw-r--  1 user group 157286400 2007-03-19 14:02 undo1.dat
    
    shell> cd /data2
    shell> ls -l
    total 2099304
    -rw-rw-r--  1 user group 1073741824 2007-03-19 14:02 data1.dat
  • 1 つのホスト上で複数のデータノードを実行している場合は、それらがディスクデータファイルに同じ領域の使用を試みないように注意する必要があります。各データノードファイルシステムにシンボリックリンクを作成すると、これを簡単にできます。両方のデータノードファイルシステムに /data0 を使用しているが、/data1 上に両方のノードのディスクデータファイルを配置する必要があるとします。この場合、次に示すものと同様の操作を実行できます。

    shell> cd /data0
    shell> ln -s /data1/dn2 ndb_2_fs/dd
    shell> ln -s /data1/dn3 ndb_3_fs/dd
    shell> ls -l --hide=D* ndb_2_fs
    lrwxrwxrwx 1 user group   30 2007-03-19 14:22 dd -> /data1/dn2
    shell> ls -l --hide=D* ndb_3_fs
    lrwxrwxrwx 1 user group   30 2007-03-19 14:22 dd -> /data1/dn3
  • この時点で、次に示すように、シンボリックリンクを使用してログファイルグループおよびテーブルスペースを作成できます。

    mysql> CREATE LOGFILE GROUP lg1
        ->    ADD UNDOFILE 'dd/undo1.log'
        ->    INITIAL_SIZE 150M
        ->    UNDO_BUFFER_SIZE = 1M
        ->    ENGINE=NDBCLUSTER;
    
    mysql> CREATE TABLESPACE ts1
        ->    ADD DATAFILE 'dd/data1.log'
        ->    USE LOGFILE GROUP lg1
        ->    INITIAL_SIZE 1G
        ->    ENGINE=NDBCLUSTER;

    次に示すように、ファイルが正しく作成および配置されたことを確認します。

    shell> cd /data1
    shell> ls
    dn2        dn3
    shell> ls dn2
    undo1.log        data1.log
    shell> ls dn3
    undo1.log        data1.log

User Comments
Sign Up Login You must be logged in to post a comment.