MySQLデータベースRaidストレージスキーム

7437 ワード

一、RAIDの基礎知識
【定義】RAID(Redundant Array of Independent Disk)は、独立した冗長ディスクアレイです.
1、なぜRAIDを使うのですか.
単一のディスクは、パフォーマンス、容量、セキュリティにおいても単一の問題があることが知られています.複数のハードディスクを1つのgroupとして構成すると、論理ドライブとして同時に複数のハードディスクからデータをアクセスすることができ、ストレージのスループットを向上させ、アクセス速度を向上させ、ストレージ容量を拡大することができます.
RAID(Redundant Array of Independent Disk独立冗長ディスクアレイ)技術は、このことを専門にしています.RAIDは、複数の安価なディスクからなる冗長アレイであり、オペレーティングシステムの下では独立した大型ストレージデバイスとして登場する.RAIDは複数のハードディスクの優位性を十分に発揮することができ、ハードディスクの速度を向上させ、容量を増大させることができ、フォールトトレランス機能を提供してデータの安全性を確保し、管理しやすいという利点があり、どのハードディスクに問題が発生した場合でも仕事を続けることができ、ハードディスクの損傷の影響を受けないことは、データベースストレージ分野にとって非常に必要である.
2、RAIDのいくつかの作業レベル
私達が比較的によく使うRAIDレベルはRAID-0、RAID-1、RAID-10/RAID-01、RAID-5で、その他の例えばRAID-3、RAID-4、RAID-6はここで紹介しません.
  • RAID-0

  • RAID-0はデータストライプ技術(Striped)を採用して複数のディスクをより巨大なディスクグループに直列に接続し、ディスクの性能とスループットを高めることができる.それはデータの読み書きのスピードが最も速くて、要求は比較的に低くて、2つのディスクがRAID-0をすることができることを要求して、相対コストは最も低くて、しかしRAID-0は冗長あるいはパリティデータの機能を提供しないで、もしドライブが故障するならば、データは回復することができなくて、安全性は最も弱いです.一般的には、パフォーマンスの要求が高く、データセキュリティの要求が高くない場合にのみ使用され、データベースのストレージには適していません.
  • RAID-1

  • RAID-1はミラー方式でデータを冗長化する.RAID-1は少なくとも2つまたは2 xN個のディスクを必要とし、データを書くたびに同時にミラーディスクに書き込まれる.このアレイは信頼性が高いが、有効容量は総容量の半分に減少し、ディスクのサイズは等しくなければならない.そうしないと、総容量は最小ディスクのサイズしか持たない.RAID-1のデータセキュリティはすべてのRAIDレベルで最高です.しかし、ディスクの使用率はわずか50%で、すべてのRAIDレベルの中で最も低い.
  • RAID-10

  • RAID-0とRAID-1はいずれも明らかな利点と欠点があるため、両者の利点を結びつけ、両者の欠点を避けるために、RAID-10が発生した.RAID-10は速度需要が高く、また完全なフォールトトレランスに適しており、もちろんコストも多くの応用がある.しかし、RAID-10を作るときに注意しなければならないのは、まずRAID-1をして、それからRAID-0をして、それとも先にRAID-0をして、それからRAID-1をして、両者には違いがあります.栗を挙げると、今4つのディスクがあるとします.
    先にRAID-0をして、更にRAID-1をします:2つのディスクごとに先にRAID-0をして、この基礎の上で、更に2つのRAID-0をRAID-1にします.この場合、AクラスまたはBクラスのディスクに同時に障害が発生した場合、RAID全体が使用できなくなります.
    (RAID 0) A = (Drive A1 + Drive A2) (Striped)
    (RAID 0) B = (Drive B1 + Drive B2) (Striped)
    (RAID-1)AB = (A +  B) (Mirrored)

    先にRAID-1をして、更にRAID-0をします:2つのディスクごとに先にRAID-1をして、この基礎の上で、更に2つのRAID-1をRAID-0にします.この場合、RAID全体が使用できないのは、AクラスまたはBクラスのディスクの両方が故障している場合のみです.
    (RAID-1) A = (Drive A1 + Drive A2) (Mirrored)
    (RAID-1) B = (Drive B1 + Drive B2) (Mirrored)
    (RAID-0)AB = (A +  B) (Striped)

    総合的に見ると、まずRAID-1をして、それからRAID-0をするのが相対的に安全で、このような方式を提案して、だから私達のふだん言うRAID-10は先にRAID-1をして、それからRAID-0をします.
  • RAID-5

  • RAID-5はRAID-0とRAID-1の間の1種の動作モードにあるべきで、それはできるだけRAID-0とRAID-1の長所と短所をバランスさせて、私達のふだん使う比較的に多い1種のモードです.RAID-5を作るには少なくとも3つのディスクが必要で、それは検査コード冗長データを採用し、検査情報は複数のディスクに分布し、データが毎回ディスクに書き込まれると同時に検査情報を書き込む必要があるため、書き込み性能は相対的にRAID-0に及ばない.ディスクに障害が発生した場合、他のディスクで情報を検証してデータをリカバリできます.RAID-1に対して、ディスク容量の利用率は(N-1)/Nである
    3、RAIDのいくつかの仕事レベルのメリットとデメリット
     
    【注】以上の高、中、低は、RAID-0、RAID-1、RAID-10、RAID-5に対してのみです.
     
    二、RAIDレベル、書き込みポリシー、電池状況の判断方法
    1、RAIDレベルの判断:MegaCli 64ツール入力ディスク情報は以下の通り:
    [root()@xxxx ~]# MegaCli64 -LdInfo -lAll -aALL
                                         Adapter 0 -- Virtual Drive Information:
    Virtual Drive: 0 (Target Id: 0)
    Name                :RAID Level          : Primary-1, Secondary-0, RAID Level Qualifier-0Size                : 278.875 GB
    Is VD emulated      : No
    Mirror Data         : 278.875 GB
    State               : Optimal
    Strip Size          : 64 KBNumber Of Drives    : 2
    Span Depth          : 1Default Cache Policy: WriteBack, ReadAhead, Direct, No Write Cache if Bad BBU
    Current Cache Policy: WriteBack, ReadAhead, Direct, No Write Cache if Bad BBU
    Default Access Policy: Read/Write
    Current Access Policy: Read/Write
    Disk Cache Policy   : Disabled
    Encryption Type     : None
    Default Power Savings Policy: Controller Defined
    Current Power Savings Policy: None
    Can spin up in 1 minute: Yes
    LD has drives that support T10 power conditions: Yes
    LD's IO profile supports MAX power savings with cached writes: NoBad Blocks Exist: No
    PI type: No PI
    
    Is VD Cached: No
    
    
    Virtual Drive: 1 (Target Id: 1)
    Name                :RAID Level          : Primary-1, Secondary-0, RAID Level Qualifier-0Size                : 2.180 TB
    Is VD emulated      : Yes
    Mirror Data         : 2.180 TB
    State               : Optimal
    Strip Size          : 64 KBNumber Of Drives per span   : 2Span Depth          : 3Default Cache Policy: WriteBack, ReadAhead, Direct, No Write Cache if Bad BBU
    Current Cache Policy: WriteBack, ReadAhead, Direct, No Write Cache if Bad BBU
    Default Access Policy: Read/Write
    Current Access Policy: Read/Write
    Disk Cache Policy   : Disabled
    Encryption Type     : None
    Default Power Savings Policy: Controller Defined
    Current Power Savings Policy: None
    Can spin up in 1 minute: No
    LD has drives that support T10 power conditions: No
    LD's IO profile supports MAX power savings with cached writes: NoBad Blocks Exist: No
    PI type: No PI
    
    Is VD Cached: No

    ネット上ではRAID Level列のPrimary-1,Secondary-0,RAID Level Qualifier-0だけで判断する人がいますが、正確ではないと思います.まずPrimary、Secondary、RAID Level Qualifierとはどういう意味ですか?
    Primaryフィールド:RAIDのレベルは基本的に決定できますが、RAID-1とRAID-10は区別できません.Primary値がPrimary-1、Secondary-0、RAID Level Qualifier-0の場合があります.
    この場合、RAID-1とRAID-10をどのように区別しますか?他の2つの列と結びつけて判断しなければならないと思います.
    Number Of Drives per span   : 2    #     2   Span Depth                  : 3    #      
    primary-1, RAID , RAID-1, RAID-1 RAID-0

    【まとめ:RAIDレベルの判断方法】:
    1)RAID-1とRAID-10を除き、その他のレベルはPrimaryフィールド値で判断できる.
    2)RAID-1とRAID-10については、Number Of Drives(per span)、Span Depthの2列の値を結合する必要があり、Span Depth値が1であればRAID-1、1でなければRAID-10を表す.もう1つのケースは、Primary-1、Secondary-3、RAID Level Qualifier-0もRAID-10を表しています.
     
     
    2、RAID書き込みポリシーと電池の状態を判断する
     
    RAIDの書き込みポリシーはIO性能に大きな影響を及ぼし、2種類の書き込みポリシーがある.
    WriteBack:          ,     ,       ,RAID        ,      ,     。
    WriteThrough:          ,      WriteBack ,            

    2.1)RAIDの書き込みポリシーの表示
    [root()@xxxx ~]# MegaCli64 -LDInfo -Lall -aALL|

      Default Cache Policy: WriteThrough, ReadAheadNone, Direct, No Write Cache if Bad BBU  Current Cache Policy: WriteThrough, ReadAheadNone, Direct, No Write Cache if Bad BBU
    これならWriteThroughポリシーを採用していることを示します
    **********************************************************************************
    Disk Cache Policy   : Disabled     #     cache,      ,      

    2.2)電池の状態を確認する
    [root()@xxxx ~]# MegaCli64 -adpbbucmd -aall |grep -E  'Battery State|Charger Status|isSOHGood|Relative State of Charge'                        Battery State     : Operational  #    ,operational      
    Relative State of Charge: 98 %   #    ,    15%,        WB   WC,IO    ,    
    Charger Status: Complete         #    ,     
    isSOHGood: Yes                   #  Yes    

     
    三、MySQLに適したRAIDストレージ方案
    上記のRAIDに対する理解を通じて、私達はすでに各レベルのRAIDの優劣を知っていて、MySQLデータベースのストレージに対して、どのようにRAIDレベルを選択しますか?
    私達はMySQLの各種のファイルのタイプによってそれぞれ選択することができて、MySQLデータベースの重要なファイルのタイプはあります:
    1、    (frm,ibd):       ,    ,      ,         、    ,          ,         SSD,  RAID   ,      ,  RAID-10,   RAID-52、       :      ,      ,         ,       ,      ,     SATA  ,  RAID-1  。3、redo  ,       :      ,      ,RAID-10,  RAID-1     ,    ,redo                    。