Skip to main content
Enterprise applications
日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

MySQLとSAN

共同作成者

通常の2ボリュームモデルを使用してSANでMySQLを構成するには、2つのオプションがあります。

I/Oと容量の要件が単一のLUNファイルシステムの制限内であれば、小規模なデータベースを標準LUNのペアに配置できます。たとえば、約2、000 IOPSのランダムIOPSを必要とするデータベースを、1つのLUN上の単一のファイルシステムでホストできます。同様に、サイズが100GBしかないデータベースでも、1つのLUNに収まります。管理上の問題は発生しません。

大規模なデータベースには複数のLUNが必要です。たとえば、10万IOPSを必要とするデータベースには、少なくとも8つのLUNが必要です。ドライブへのSCSIチャネルの数が不十分なため、1つのLUNがボトルネックになります。同じように、10TBのデータベースを1つの10TB LUNで管理するのは困難です。論理ボリュームマネージャは、複数のLUNのパフォーマンス機能と容量機能を結合して、パフォーマンスと管理性を向上させるように設計されています。

どちらの場合も、ONTAPボリュームのペアで十分です。単純な設定では、ログLUNと同様に、データファイルLUNも専用ボリュームに配置されます。論理ボリュームマネージャ構成の場合、データファイルボリュームグループ内のすべてのLUNは専用ボリュームに配置され、ログボリュームグループのLUNは2つ目の専用ボリュームに配置されます。

ヒント
  • NetAppでは* SANへのMySQL導入には2つのファイルシステムを使用することを推奨しています。

  • 最初のファイルシステムには、表領域、データ、インデックスを含むすべてのMySQLデータが格納されます。

  • 2番目のファイルシステムには、すべてのログ(バイナリログ、低速ログ、トランザクションログ)が格納されます。

この方法でデータを分離する理由には、次のようなものがあります。

  • データファイルとログファイルのI/Oパターンは異なります。これらを分離すると、QoS制御でより多くのオプションを使用できるようになります。

  • Snapshotテクノロジを最適に使用するには、データファイルを個別にリストアできる必要があります。データファイルとログファイルを混在させると、データファイルのリストアが妨げられます。

  • NetApp SnapMirrorテクノロジを使用すると、シンプルでRPOの低いディザスタリカバリ機能をデータベースに提供できますが、データファイルとログには異なるレプリケーションスケジュールが必要です。

メモ ONTAPのすべての機能を必要に応じて使用解決策できるように、この基本的な2ボリュームレイアウトを使用して、将来のニーズにも対応します。
ヒント
  • NetAppでは、次の機能により、ドライブをext4ファイルシステムでフォーマットすることを推奨しています。

  • JFS(ジャーナルファイルシステム)で使用されるブロック管理機能の拡張アプローチと、XFS(拡張ファイルシステム)の遅延割り当て機能。

  • ext4は、最大1エクスビバイト(260バイト)のファイルシステムと最大16テビバイト(16*240バイト)のファイルシステムを許可します。一方、ext3ファイルシステムでサポートされる最大ファイルシステムサイズは16TB、最大ファイルサイズは2TBです。

  • ext4ファイルシステムでは、複数ブロック割り当て(mballoc)は、ext3のようにファイルを1つずつ割り当てるのではなく、1回の操作で複数のブロックを割り当てます。この構成により、ブロックアロケータを数回呼び出すオーバーヘッドが削減され、メモリの割り当てが最適化されます。

  • XFSは多くのLinuxディストリビューションではデフォルトですが、メタデータの管理方法が異なり、一部のMySQL構成には適していません。

ヒント
  • NetAppでは、mkfsユーティリティで4kブロックサイズオプションを使用して、既存のブロックLUNサイズに合わせることを推奨*しています。

mkfs.ext4 -b 4096

NetApp LUNは4KBの物理ブロックにデータを格納するため、512バイトの論理ブロックが8個生成されます。

同じブロックサイズを設定しないと、I/Oは物理ブロックと正しくアライメントされず、RAIDグループ内の2つの異なるドライブに書き込みが行われてレイテンシが発生する可能性があります。

メモ スムーズな読み取り/書き込み処理を実現するためには、I/Oのアライメントが重要です。ただし、物理ブロックの先頭以外の論理ブロックからI/Oが開始されると、I/Oはミスアライメントされます。I/O処理がアライメントされるのは、I/O処理が論理ブロック(物理ブロック内の最初の論理ブロック)で開始されたときだけです。