OceanBaseデータベースのサーバーは、データディスク、トランザクションログディスク、およびOceanBaseデータベースのインストールディスクに依存しています。個人ユーザーの場合は、すべてのデータを1つのディスクにまとめて配置し、この手順をスキップすることができます。企業ユーザーの場合は、データを3つのディスクにそれぞれマウントすることを推奨します。
お使いのマシンに3台のディスクがない場合、またはRAIDディスクアレイを使用している場合は、ディスクまたはディスクアレイの論理ボリュームをパーティション分割する必要があります。以下のパーティション分割方法を推奨します:
データディスク
データディスクは、ベースラインデータを格納するために使用され、そのパスは構成パラメータ
data_dirで指定されます。OceanBaseクラスタを初めて起動すると、${data_dir}/{sstable,slog}が自動的に作成されます。データディスクのサイズは、datafile_disk_percentage/datafile_sizeパラメータによって決定されます。デプロイ完了後、datafile_nextおよびdatafile_maxsize構成パラメータを使用してディスクファイルの動的拡張を行うことも可能です。詳細については、ディスクデータファイルの動的拡張の設定を参照してください。説明
OceanBaseデータベースの現バージョンでは、
slogをデータ(data)ディスクから独立させることがサポートされています。つまり、slogとデータファイルは同一ディスク上にある必要がありません。OceanBaseデータベースのインストールディレクトリに関する詳細は、OBServerノードのインストールディレクトリ構造を参照してください。トランザクションログディスク
トランザクションログディスクのパスは、構成パラメータ
clog_dirで指定されます。OceanBaseデータベースのメモリ容量の3~4倍以上に、トランザクションログディスクのサイズを設定することを推奨します。OceanBaseクラスタを初めて起動すると、${clog_dir}が自動的に作成され、トランザクションログディスクには複数の固定サイズのファイルが含まれます。必要に応じて、トランザクションログを自動的に作成および削除することができます。トランザクションログがディスク総容量の80% に達すると、自動クリアが実行されます。ただし、トランザクションログに対応するメモリ上のデータがベースラインデータにマージ済みの場合のみ、トランザクションログを削除することができます。同じデータ量の場合、トランザクションログのサイズはメモリデータサイズの約3倍となります。このため、トランザクションログディスクに必要な容量の上限は、2回のマージ後のデータ総量に比例します。経験式:トランザクションログファイルサイズは、増分データのメモリ上限の3~4倍となります。
OceanBaseデータベースインストールディスク
OceanBaseデータベースのインストールディレクトリは、構成パラメータ
home_pathで指定されます。OceanBaseデータベースのインストールディスクには、7日以上のログを保存するため、少なくとも200 GBの空き容量を確保することを推奨します。OceanBaseデータベースのRPMパッケージのインストールディレクトリは${home_path}にあります。ベースラインデータファイルとトランザクションログファイルは、それぞれ独立したデータディスクとトランザクションログディスクへのソフトリンクとなります。OceanBaseデータベースの動作ログは${home_path}/logディレクトリにあります。実行ログは継続的に増加し、OceanBaseデータベースは実行ログを自動的に削除できないため、定期的に実行ログを削除する必要があります。
ディスクのマウント
マウント要件
OCPサーバーのディスクマウントポイント要件は以下の表に示されています。
マウントポイント サイズ 用途 ファイルシステム形式 /home 100 GB~300 GB 各コンポーネントの実行ログディスク 推奨: ext4またはxfs /data/log1 observerに割り当てるメモリサイズの3〜4倍 OCPメタデータベースのログディスク 推奨: ext4またはxfs /data/1 保存する必要があるデータのサイズに応じて変更 OCPメタデータベースのデータディスク 推奨: ext4またはxfs OBServerノードのディスクマウントポイント要件は以下の表に示されています。
ディレクトリ サイズ 用途 ファイルシステム形式 /home 100 GB~300 GB observerデータベースのインストールディスク 推奨: ext4またはxfs /data/log1 observerに割り当てるメモリサイズの3〜4倍 observerプロセスのログディスク 推奨: ext4またはxfs /data/1 保存する必要があるデータのサイズに応じて変更 observerプロセスのデータディスク 推奨: ext4またはxfs 説明
ルートディレクトリは50 GB以上であることを推奨します。LVMを使用する場合は、作成時にストライピングパラメータを使用することを推奨します。例:
lvcreate -n data -L 3000G obvg --stripes=3 --stripesize=128。本番環境では、データディスク、ログディスク、およびインストールディスクに異なるディスクを使用することを推奨します。パフォーマンスの低下を防ぐためです。
マウント操作
ディスクのマウントはrootユーザーで実行する必要があります。以下の2つの操作方法がありますので、実際の状況に応じて適切なディスクマウント操作を選択してください:
- LVMツールを使用してディスクをマウントする(推奨)。
- fdiskツールを使用してディスクをマウントする。
ディスク情報を確認する
fdisk -lコマンドを使用して利用可能なディスクとパーティションを識別し、ターゲットデバイス(例:/dev/sdb1)を確認します。[root@test001 ~]# fdisk -l(オプション)LVMツールをインストールする
LVMが事前にインストールされていない場合は、以下のコマンドを実行してLVMをインストールする必要があります。LVMが既にインストールされている場合は、このステップをスキップしてください。
Debian/Ubuntu系システム
[root@test001 ~]# apt-get install lvm2CentOS/RHEL系システム
[root@test001 ~]# yum install lvm2
物理ボリューム(PV)を作成する
パーティションを物理ボリュームとして初期化します。
注意
パーティションを物理ボリュームとして初期化すると、パーティションが再フォーマットされ(データが失われる可能性があります)、慎重な操作が必要です。
[root@test001 ~]# pvcreate /dev/sdb1作成後、
pvsコマンドを実行して物理ボリュームの作成結果を検証できます。ボリュームグループ(VG)を作成する
複数の物理ボリュームを1つのVGにまとめます。
[root@test001 ~]# vgcreate vg01 /dev/sdb1 /dev/sdc1作成後、
vgsコマンドを実行することで、ボリュームグループの情報を確認できます。論理ボリューム(LV)を作成する
VGから100GBの論理ボリュームを分離します。ここでは例として100GBを設定していますが、実際の状況に応じて論理ボリュームのサイズを変更できます。
[root@test001 ~]# lvcreate -L 100G -n lv01 vg01作成後、
lvsコマンドを実行することで、論理ボリュームの情報を確認できます。フォーマットとマウント
ext4ファイルシステムでのフォーマット
[root@test001 ~]# mkfs.ext4 /dev/vg01/lv01マウントポイントを作成する
[root@test001 ~]# mkdir -p /data/1一時的にマウントする
[root@test001 ~]# mount /dev/vg01/lv01 /data/1
起動時に自動マウントする設定を行う
/etc/fstabファイルを編集し、マウント設定を追加します:[root@test001 ~]# vim /etc/fstab/etc/fstabファイルに以下の内容を追加します:/dev/vg01/lv01 /data/1 ext4 defaults,noatime,nodiratime,nodelalloc,barrier=0 0 0
ディスク情報を確認する
fdisk -lコマンドを使用して利用可能なディスクとパーティションを識別し、ターゲットデバイス(例:/dev/sdb1)を確認します。[root@test001 ~]# fdisk -lパーティションを作成する
fdiskツールを使用して新しいパーティションを作成します。例えば、
fdisk /dev/sdb1と入力し、nを入力して主パーティションを作成し、最後に保存(w)します。[root@test001 ~]# fdisk /dev/sdb1フォーマットとマウント
ext4ファイルシステムにフォーマットする。
[root@test001 ~]# mkfs.ext4 /dev/sdb1マウントポイントを作成します
[root@test001 ~]# mkdir -p /data/1一時的にマウントします
[root@test001 ~]# mount /dev/sdb1 /data/1
起動時に自動的にマウントする設定を行います。
/etc/fstabファイルを編集し、マウント設定を追加します:[root@test001 ~]# vim /etc/fstab/etc/fstabファイルに以下の内容を追加します:/dev/sdb1 /data/1 ext4 defaults,noatime,nodiratime,nodelalloc,barrier=0 0 0
ディスクの確認
ディスクがマウントされた後、以下のコマンドを実行してディスクのパーティション状況を確認できます:
df -h
以下の結果が返されます:
Filesystem Size Used Avail Use% Mounted on
devtmpfs 31G 0 31G 0% /dev
tmpfs 31G 0 31G 0% /dev/shm
tmpfs 31G 516K 31G 1% /run
tmpfs 31G 0 31G 0% /sys/fs/cgroup
/dev/vda1 493G 171G 302G 37% /
tmpfs 6.2G 0 6.2G 0% /run/user/0
/dev/vdd1 984G 77M 934G 1% /data
/dev/vdc1 196G 61M 186G 1% /redo
/dev/vdb1 492G 73M 467G 1% /home/admin/oceanbase
結果の説明
/dataはデータディスクで、サイズは1 TBとなります。/redoはredoログを格納します。/home/admin/oceanbaseには、OceanBaseデータベースのバイナリファイルと実行ログが保存されています。
設定ファイルの data_dir、redo_dir、および home_path に対応するディスクが、それぞれマウントされていることを確認します。data_dir と redo_dir のディレクトリは空でなければなりません。また、data_dir のディスク使用率は4%未満である必要があります。
ディレクトリ権限の設定
ディスクのマウントが完了したら、ディスクマウントに対応するディレクトリの権限を確認する必要があります。クラスタ関連のファイルディレクトリの権限を確認するには、以下のコマンドを実行します。
ここでは data ディレクトリを例にします:
[root@test001 data]# ls -al
結果は次のとおりで、ディレクトリの所有者はadminグループのadminユーザーであることが示されます:
drwxr-xr-x 2 admin admin 4096 2 月 9 18:43 .
drwxr-xr-x 2 admin admin 4096 2 月 9 18:43 log1
ディレクトリの権限を確認した後、adminユーザーが関連ファイルにアクセスできない場合は、以下のコマンドを実行してファイルの所有者を変更します:
[root@test001 ~]# chown -R admin:admin /data/log1
[root@test001 ~]# chown -R admin:admin /data
ここでは /data/log1、/data がマウントディレクトリの例です。実際のマウントディレクトリに置き換える必要があります。