yoshiislandblog.net
元営業の駆け出しアラサーSEが、休日にMACと戯れた際の殴り書きメモ。日々勉強。日々進歩。
nvme

サルでもわかる、ストレージ周りの用語整理整頓(HDDとSSD、IOPSとスループット、SATAとPCIe、AHCIとNVMe、他)

2022-08-22

ストレージ周りの用語を調べると、どのページも難しく書かれているので、
ざっくり理解できるレベルで、ストレージ周りの用語を整理した

(自分も調べながらなので、間違っていたらごめんなさい)

HDDとSSD(ドライブの種類)

HDDは「Hard Disk Drive」の略
文字通り、ディスクがガタガタ回転して、針がデータを書き込んでいく
ガタガタ回転するので、音がする(なので物理的に壊れやすい)

HDDはディスクが回転すればするほど性能が良いと言えるので、HDDのスペックは回転数(krpm)で表される

computer_harddisk

SSDは「Solid State Drive」の略(Solid State Diskじゃないよ)
SSDはHDDより新しく、一般的に性能が良い

SSDはディスクではなく、「セル」と呼ばれる領域に電子的にデータを書き込む
SSDのスペックは、セルにどれだけ書き込めるか(SLC, MLC, TLC)で表す

ただしSSDは、HDDと違って書き込み上限あるので、長く使いたいなら1つのセルに1bitしか書き込めないSLCが向いていたり、単純に判断はできない

参考:SSDの選び方:SLC、MLC、TLC、QLC、PLCの違いを解説

IOPSとスループット(ストレージ性能)

上で言及したHDDやSSD特有のスペックとは別に、
HDDかSSDかを気にせず、ストレージ自体の性能を判断するために、「IOPS」とか「スループット」がある

IOPSは「Input Output Per Second」の略で、データの塊(ブロック)を1秒間にどれだけストレージに出し入れできるか

IOPSは、高ければ高いほど良いが、数値はブロックサイズ(だいたい、4KBとか32KBとか数KB単位)に左右される
ブロックサイズは、ストレージやアプリケーションの状況によって変わってくる
大きいブロックであればIOPSが低くても多くの情報を運べるが、1ブロックが重たいのでIOPSが伸びなかったりする

ブロックサイズも考慮して判断できるのが「スループット」で、1秒間でどれだけの量のデータを運べるかの指標
以下の式で表される(IOPSの値が大きければMBなどで表してもOK)

スループット(KB/s) = ブロックサイズ(KB) * IOPS

20220822_storage_interface_protocol_iops_throughput

一般的にHDDよりSSDの方が性能が良いが、まだHDDの方が安価なのでHDDも人気がある
(もっと安い「テープ」も、同じ理由で、現役で使っているシステムもあるはず)

media_analog

SSDをより効率的に使うための技術たち(SATAとPCIe、AHCIとNVMe)

HDDやSSDの接続規格としては、HDD用には「SATA」や「SAS」、SSD用には「PCIe」と呼ばれる規格がある
(SSDをSATAやSASで繋ぐことも可能ではあるが、SATAやSASはあくまでHDD用)

コントローラのプロトコルとしては、元々AHCIが主流だったが、PCIe-SSDのスペックを十分発揮できない問題があり、そこで「NVMe」というプロトコルが登場した
なので「NVMeと言えばSSD」と覚えておけば良い

20220822_storage_interface_protocol__sata_pcie_ahci_nvme

NVMeは、元々ストレージの中(或いはDAS)の話だったのが、
NVMe over Fabric(NVMe over FC/NVMe over Ethernet)と言って、コントローラのプロトコルだけでなく、サーバストレージ間の通信にもNVMeが使われるようになった

20220822_storage_interface_protocol_nvme_over_fabric

さらにNVMe over Fabricをより速く使うために、「RDMA(Remote Direct Memory Access)」という技術と合わせて使うようにもなってきている
(RDMA自体は前からある技術でInfinibandという通信プロトコルで使われていたが、これを新しくEthernetやFCで使えるようにした = RoCEなど)

NVMeの仕組みについては著者も勉強中なのでググってください、、

参考

  • SSDの選び方:SLC、MLC、TLC、QLC、PLCの違いを解説
  • ストレージに関するNAS, NFS, NVMe, FC, NVMe-oFとは?を解説
  • SSD 周りの用語まとめ(M.2,PCIe,SATA,AHCI,NVMe)
  • NVMeとSCM
  • SATA or NVMe, Which One is Better
  • いまさら聞けないIT用語集 SSD用の高速インターフェースNVMe
  • NVMeとConnectX-4で始めるNVMe over RDMA (RoCEv2)入門
  • ストレージのことをざっくり理解するにはNetworldのサイトが個人的におすすめ!
    最初に学ぶ人が見るサイト

    以上、ここまで。