2015年12月26日土曜日

Intel SSD710 で Over-Provisioning 設定してみた

ちょうど180Gくらいの SSD を用立てたいと思っていたところ、この日、Intel SSD 710 の特価情報を目にして、一目散に秋葉原へ・・・。危うく売り切れのところ、なんと最後の1個をゲットできました。
手持ちの180GのSSD(Intel 520)と組み合わせてソフトウェアRAID(md or ZFS or Btrfs)で利用しようと考えたのですが、今回ゲットしたのは200Gなので、少々余ります。そこで思い出したのがオーバープロビジョニング。興味本位もあり、180GのSSDと同じサイズに揃えてみようと思いました。
おぼろげに、HPA(Host Protected Area)を設定すればいいはずだとは知ってましたが、根拠になる情報をネット検索してみたところ、Intel から次のドキュメントが公開されているのを見つけました。

Intel®: Solid-State Drives in Server Storage Applications White Paper February 2014

このPDFの「3.1 Adjusting User Capacity - Over-Provisioning」に記述があり、HPA を設定すれば良いという理解で合っているようです(注: HPA を設定しなくても、パーティションを切るときに、末尾領域を余らせるという方法でも良いようで、最もお手軽な、その手法が Intel のお勧めである と記述されています)。

てなわけで、CentOS 7 の hdparm コマンドで、次のような手順で HPA を設定しました。
[root@hoge ~]# cat /sys/block/sdb/device/model    ※まず、対象を間違えないように、確認。これ超重要です。
INTEL SSDSA2BZ20
[root@hoge ~]# hdparm -Np351651888 --yes-i-know-what-i-am-doing /dev/sdb

/dev/sdb:
 setting max visible sectors to 351651888 (permanent)
 max sectors   = 351651888/390721968, HPA is enabled
※このあと、いったんシャットダウン&電源OFF して再起動する。
ここで、351651888 は、予め確認しておいた Intel SSD 520 180G の総セクタ数です。

次は、HPA 設定後の dmesg から抜粋です。どうやら、成功した様子が読み取れます。
[root@hoge ~]# dmesg | egrep "ata2|sdb"
[    1.384635] ata2: SATA max UDMA/133 abar m2048@0xf2427000 port 0xf2427180 irq 27
[    1.999869] ata2: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[    2.000849] ata2.00: ACPI cmd ef/02:00:00:00:00:a0 (SET FEATURES) succeeded
[    2.000856] ata2.00: ACPI cmd f5/00:00:00:00:00:a0 (SECURITY FREEZE LOCK) filtered out
[    2.001170] ata2.00: HPA detected: current 351651888, native 390721968
[    2.001181] ata2.00: ATA-8: INTEL SSDSA2BZ200G3, 6PB10362, max UDMA/133
[    2.001187] ata2.00: 351651888 sectors, multi 16: LBA48 NCQ (depth 31/32)
[    2.002169] ata2.00: ACPI cmd ef/02:00:00:00:00:a0 (SET FEATURES) succeeded
[    2.002177] ata2.00: ACPI cmd f5/00:00:00:00:00:a0 (SECURITY FREEZE LOCK) filtered out
[    2.002510] ata2.00: configured for UDMA/133
[    2.662193] ata2.00: Enabling discard_zeroes_data
[    2.662205] sd 1:0:0:0: [sdb] 351651888 512-byte logical blocks: (180 GB/167 GiB)
[    2.662419] sd 1:0:0:0: [sdb] Write Protect is off
[    2.662423] sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[    2.662446] sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    2.662556] ata2.00: Enabling discard_zeroes_data
[    2.663234]  sdb: unknown partition table
[    2.663378] ata2.00: Enabling discard_zeroes_data
[    2.663486] sd 1:0:0:0: [sdb] Attached SCSI disk
人気ブログランキングへ にほんブログ村 IT技術ブログへ