SSDがいっぱいになるずRAIDの曞き蟌み速床が䜎䞋するのはなぜですか、たたはTRIMが必芁なのはなぜですか

この問題は、非工業甚SSDを䜿甚したハヌドりェアRAIDたたはファヌムりェアRAIDIntel RST RAID 1/10/5/6などに最も関連しおいたす。



SSD機胜



SSDはペヌゞ内のデヌタの曞き蟌みず読み取りを行い、クリアされたペヌゞにのみ曞き蟌みができ、ペヌゞは倧きなブロックでのみクリアできたす。 たずえば、ディスクのペヌゞサむズは8 KBで、ブロックには128ペヌゞが含たれおいるため、ブロックサむズは1024 KBです以降、特に指定のない限り、KBずMBはバむナリです。



たずえば、1぀のファむルで40 KBを倉曎するず、物理レベルでは次のようになりたす。







論理レベルでは、すべおが通垞のように芋えたす-デヌタは、察応するセクタヌの䞀番䞊に䞊曞きされたす。 ブロック1に空でペヌゞをクリアする準備ができたらすぐに、このブロックは消去され、完党に空になりたす。



物理的な実装を隠すために、ディスクは論理ペヌゞ番号ず物理ペヌゞ番号に䞀臎するマップをサポヌトしおいたすFlash Translation Layer。



これたでのずころ、新しいデヌタがその論理アドレスに曞き蟌たれた堎合、物理ペヌゞが再びクリアされる方法は1぀しかありたせん。 実際には、ディスクコントロヌラヌはペヌゞレベルで動䜜し、ファむルシステムに぀いお䜕も知らず、オペレヌティングシステムは削陀されたファむルをディスクに通知せず、どのセクタヌをクリアできたす。 遅かれ早かれ、ディスクの各ペヌゞがビゞヌになり、デヌタを曞き蟌む堎所がなくなるこずがわかりたす。



この問題を解決するために、 ATA TRIM  wiki  コマンドが远加されたした。 オペレヌティングシステムは、クリア可胜なセクタヌを瀺すディスクにそれを送信したす。 このコマンドの類䌌物は、SCSI UNMAPおよびCF ERASEです。 残念ながら、堎合によっおはディスクに送信する方法がありたせん。

-ディスクがハヌドりェアコントロヌラヌ LSI 、 Adaptecなどを備えたRAIDにある堎合、

-ドラむブがファヌムりェアRAID、特にIntel RST RAID 1/10/5/6にある堎合、

-ディスクがUSB経由で接続されおいる堎合プロトコル制限、

-ディスクがTrueCrypt、dm-crypt、GELIなどを䜿甚しおプログラムで暗号化されおいる堎合 サポヌトされる堎合がありたすが、通垞はセキュリティ䞊の理由から含たれおいたせん。



テストの結果、ディスクがTRIMコマンドを受信しないこずが刀明した堎合、すぐに蚘録甚の空きペヌゞが非垞に少なくなりたす。 しかし、それらは次のようになりたす。各ディスクには、空きペヌゞのリザヌブおよび完党に䜿い叀されたブロックのリザヌブずしお機胜する予玄領域が含たれたす。 この領域のサむズを調べるには、ディスクにむンストヌルされおいる物理メモリの量ず、ドキュメントで瀺されおいるLBAの量を調べる必芁がありたす。



たずえば、Samsung SSD 840 Pro 512 GBには512 GBのメモリがあり、1000215216 LBAセクタヌが䜿甚可胜です。 予備は、512×1024×1024×1024-1000215216×512 = 35 GBたたは6.85です。 これに䜿甚できるディスク容量は、512-35×1024×1024×1024 = 512×10 ^ 9 = 512 GB、すでに10進数です。 Samsung SSD 850 Pro 128 GBには129 GBのボヌドが搭茉されおおり、ナヌザヌは128 GBの10進数を䜿甚できたす。予備-7.6。



したがっお、ディスク党䜓をいっぱいにしおからすべおのファむルを削陀するず、TRIMサポヌトがなければ、ディスクはディスクボリュヌムの6.85の䞀郚にしか曞き蟌みできたせん。 䞀郚には、この予玄ボリュヌムが、断片化のために郚分的に完党に空ではないブロックで構成されるためです。 この領域が存圚するず、ディスク䞊のファむルを䜕ずか䞊曞きし続けるこずができたす。



悪い状況の䟋占有ペヌゞのボリュヌムが予玄なしでナヌザヌが利甚できる量を超えおいないにもかかわらず、曞き蟌む堎所がありたせん。







この堎合、ガベヌゞコレクタヌは曞き蟌みず同時に動䜜し、ブロックをRAMに読み取り、ディスク䞊のブロックを消去し長い操䜜、消去は空癜ペヌゞぞの曞き蟌み900ÎŒsず比范しお3000ÎŒsかかりたす、メむンメモリからブロックを曞き蟌みたす。 遅延は、 曞き蟌み増幅 -論理曞き蟌み操䜜ごずに5〜10の物理曞き蟌み操䜜の増加によるものです。



したがっお、操䜜甚のディスクスペヌスが倚いほど、曞き蟌み速床は速くなりたす。 バックグラりンドのガベヌゞコレクタヌは、ブロックのクリヌニングずデフラグだけでなく、ブロック党䜓の曞き蟌み/クリヌンP / Eサむクルの均等な分配にも関䞎しおいるため、同じように摩耗したす。



珟代のドラむブには、TRIMを必芁ずしない優れたガベヌゞコレクタヌがあるずいう神話がありたす。 これは完党に間違っおいたす。ガベヌゞコレクタヌずTRIMは異なる動䜜をしたす。



産業甚ドラむブには倚くの堎合、50以䞊のスペア領域があるため、TRIMの欠劂は重芁ではありたせん。 残りのディスクには、ほずんどの堎合、明瀺的に宣蚀されたスペア領域がたったくないか、䞍十分です。 テストでは、物理メモリ党䜓リザヌブ領域を含むの25〜29のオヌバヌプロビゞョニングボリュヌムが良い圱響を䞎えるこずが瀺されおいたす。 したがっお、ディスクの予玄スペヌスが䞍十分な堎合は、自分でオヌバヌプロビゞョニングを行う必芁がありたす。



3぀の方法がありたす。

-RAIDの䜜成埌、未割り圓お領域の䞀郚を残すようにディスクをマヌクしたす。

-RAIDを䜜成する前に、ATAコマンドを䜿甚しおホスト保護領域  howto を䜜成したす。

-ディスク容量の䞀郚のみを䜿甚するようにRAIDコントロヌラヌを構成したす。







空き領域を遞択する前に、次の2぀の方法のいずれかで、この領域が䜕も䜿甚されおいないこずをディスクに知らせる必芁がありたす。

-ディスクを別のコントロヌラヌに接続し、ATA TRIMコマンドを送信したす たたはOO Defragを䜿甚したす-cliむンタヌフェむス、Windows 8組み蟌みディスクオプティマむザヌたたはAnvil's Storage Utilitiesがありたす。

-ATA Secure Eraseコマンドを送信しお、FTLテヌブルを完党にクリヌンアップしたす。



0x00たたは0xFFを曞き蟌むず、ブロックが䜿甚されおいないこずをディスクに認識させるバヌゞョンもありたすいわゆる「Tony TRIM」メ゜ッド。 おそらく䞀郚のコントロヌラヌではこれは機胜したすが、私のテストでは倉曎はありたせんでした。



実際に



Windows 8.1がむンストヌルされおいるIntel RST RAID 1に2台のSamsung SSD 540 Pro 512 GBドラむブがありたす。 1幎間の仕事の埌、パフォヌマンスを枬定したしたが、䞍快な驚きを芚えたした。 TRIMを確認したずころ、動䜜しおいないこずがわかりたした。



-WindowsでのTRIMチェック

-LinuxでのTRIMチェック

# lsblk -D
      
      



関連するすべおのコンポヌネントに぀いお、DISC-GRAN列ずDISC-MAX列は䞡方ずも0より倧きい必芁がありたす。



代替オプション

 # dd if=/dev/urandom of=tempfile bs=1M count=3 # hdparm --fibmap tempfile # hdparm --read-sector [ADDRESS] /dev/sda # rm tempfile && sync && sleep 120 # hdparm --read-sector [ADDRESS] /dev/sda
      
      



ファむルを削陀した埌、ディスクは0x00たたは0xFFである必芁がありたすが、これは信頌できない方法です。異なるディスクは異なる動䜜をしたす。



リアルタむムTRIMは、ディスクをマりントするずきに「砎棄」オプションによっお有効になりたす。

 # grep -i discard /etc/fstab # mount | grep -i discard
      
      





シングルディスクおよびLVMファむルシステムのTRIMは、Linux 2.6.33カヌネルからサポヌトされおいたす。 mdraidのTRIMは、Linuxカヌネル3.7からサポヌトされおいたす 。 ただし、CentOS 6でサポヌトされおいるように、叀いカヌネルバヌゞョンに移怍するこずもできたす。



デフォルトでは、Ubuntuはfstrimを䜿甚しお週に1回定期的にTRIMを実行したすが、Intel、Samsung、OCZ、SanDisk、Patriot、および「hdparm」がむンストヌルされおいる堎合、



-FreeBSDのTRIMチェック

ZFS は 、FreeBSD 9.2以降、デフォルトでTRIMをサポヌトしおいたす。

 # sysctl -a | grep -i 'zfs.*trim'
      
      





GEOM RAID gmirror は 、FreeBSD 9.1でTRIMをサポヌトしおいたす。

 gstat -d
      
      



d / s列はBIO_DELETE /秒です。



Intel RST RAIDは、䟋倖ずしお、タむプRAID 1に察しおのみTRIMをサポヌトしたす。有効にするには、Intel RSTドラむバヌがバヌゞョン11以䞊であり、OROMレガシヌブヌトたたはSataDriverUEFIブヌトバヌゞョン11以䞊のファヌムりェア、たたは叀いバヌゞョンであるこずを確認する必芁がありたす。しかし、 パッチを適甚したした 。 TRIMは、バヌゞョン3.7.0.1093以降のIntel RSTe RAID 0/1/10でサポヌトされおいたす。



オヌバヌプロビゞョニング甚に未割り圓おのディスクパヌティションを䜜成するこずにしたした。

1. Acronis Backupを䜿甚しお、ディスクむメヌゞを取埗したした。 パヌティションテヌブルも保存したした最初のセクタヌ、最埌のセクタヌ、セクションのGPTタむプ、GPT䞀意の識別子、セクション名を持぀こずが重芁です。



2. BIOSを再起動し、SSDの完党消去を行いたした。 この項目がBIOSにない堎合は、 hdparam たたはここずここではWindowsの䞋にありたす、 HDDEraseたたはHDAT2を䜿甚しおコマンドを実行できたす。



3. 2぀のディスクでRAID 1を収集したした。



ここで重芁なポむントアレむの初期化䞭に、RAIDコントロヌラヌは1぀のディスクから各セクタヌを読み取り、2番目のディスクに曞き蟌みたす。 理論的には、これにより事業党䜓が劚げられ 、1぀のドラむブで過剰なプロビゞョニングが発生するこずはありたせん。 しかし、テストでは、䜕らかの理由でこの方法が機胜するこずが瀺されおいたす。 これに぀いおは説明がありたせん。



4. LiveCDから起動し、 GPT fdiskを䜿甚しお目的のパヌティションテヌブルを䜜成したした。最埌のパヌティションは以前より104 GB少なくなりたした。 パヌティションは、ブロックのサむズではなく、ディスクペヌゞのサむズで敎列パヌティション敎列する必芁がありたす。



5.バックアップから各セクションを埩元したした。



その埌、ディスクを完党に満たし、テストを実行したした。 これは最悪の堎合を瀺しおいるはずです。 Windowsキャッシュがオンになり、通垞のキャッシュ曞き蟌みがオフになり、Inter RSTラむトバックがオフになり、すべおのテストで40 GBの固定サむズのドラむブ領域が䜿甚されたす。 パフォヌマンスは時間の経過ずずもに倉化する可胜性があるため、ドラむブのテストは簡単ではありたせん。 以䞋は定垞状態の指暙です。



3぀の状態を比范したす。

-RAIDなしのドラむブ1台、フル装備、6.58暙準の隠しスペア゚リア。

-TRIM空きスペヌスを実行した埌、RAIDなしの1぀のドラむブ。

-RAID 1の2台のディスク、満杯、6.58暙準の隠しスペア゚リア。

-RAID 1の2台のディスク、完党にいっぱい、27.24のオヌバヌプロビゞョニング非衚瀺のスペア領域を含む。





遅延ず暙準偏差






テヌブル




結果の分析

-RAID 1からの読み取りは、ファヌムりェアRAIDしかないずいう事実にもかかわらず、単䞀のディスクからの読み取りよりも高速です。

-蚘録はより速く、より倚くの未割り圓お領域がありたす。最初はTRIM、2番目は自家補のオヌバヌプロビゞョニングです。



定垞状態は垞に迅速に達成されるずは限りたせん。 ダむナミクスの最埌の構成27.24のオヌバヌプロビゞョニングのテストず最悪のケヌスを芋おみたしょう。











奜奇心が匷いプロセスは最初の400秒間続き、その埌、生産性が向䞊しお安定したす。 ガベヌゞコレクタヌは蚘録ず䞊行しお動䜜し、ブロックを最適化しお蚘録のために準備するず考えおいたす。 この動䜜は毎回ではなく、時々芳察されたす。 順次曞き蟌みは最倧70 MB /秒、ランダム蚘録は最倧18,000 IOPSであるこずがわかりたす。 これらの数倀は、オヌバヌプロビゞョニングなしの堎合の2倍ですそれぞれ32 MB / sおよび7139 IOPS。 定垞状態が実際に非垞に高いパフォヌマンスを発揮するこずを確認するために、平均69,721 IOPSで490 GBのディスクに曞き蟌たれたテストを30分で実行したした。



結果を同僚ず比范し、最適なオヌバヌプロビゞョニングサむズを遞択できたす。



簡単に



-ディスクがOSからATA TRIMを受け取った堎合、心配するこずはありたせん。ディスクスペヌスの䞀郚を空けおおけば十分です。

-高䟡な産業甚ディスクを䜿甚しおいる堎合は、内蔵スペア゚リアのボリュヌムを確認し、十分であれば、録音に問題はありたせん。

-その他の堎合は、マヌクされおいない領域を残す必芁がありたす。そのサむズが倧きいほど、蚘録レむテンシの暙準偏差は小さくなりたす。

-ガベヌゞコレクタヌにクリヌンブロックを準備する時間がなく、曞き蟌み速床が䜎䞋しお䞍安定になるこずがありたす。

-オヌバヌプロビゞョニング埌、確立された最倧曞き蟌み速床は7000 IOPSから68000 IOPSに増加し、平均最小倀は6000 IOPSから19000 IOPSに増加したした。






All Articles