たぶん最も簡単なペタバイトストレージ



１ペタバイト、それは1,000テラバイト。
私が最初にこの業界で働いたときは・・・という話を長々する老害にはなりたくないけど、「ギガワロス」とか言っていたのが遠い昔ですね。

エンタープライズ企業や大学、研究室、映像業界、監視カメラやバックアップデータなどなど、数百テラバイトは当たり前になっています。
でもペタまで行くとやっぱり大変で、分散ファイルシステムの為のイレジャーコーディング選び、最適化するためのファイルシステム、データを管理するメタデータのパフォーマンスと冗長性の担保、そしてストレージ専用のネットワークを最低40Gbは確保して、結構大変。（費用も。）

もっとシンプルな **こういうので良いんだよ** 的ストレージをHDD屋さんが作りました、という話。
物理的にはサーバーとケーブル２本でつなぐだけ。
うーん、簡単。ペタワロス
![lv07 - Copy.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478729/60fc7a6a-990c-d9aa-ceaa-c6cf3fec9353.png)

#
手順
1,　4UのストレージにHDDを106本充填
2,　管理ツールにアクセス
3,　推奨構成の8ボリュームで構築
4,　マッピング
5,  MPIOの設定
6,　ディスクの管理
7,　WindowsのStorage poolと仮想ディスク
8,　制限事項
9,　パフォーマンス
10, 106本丸ごとRAID
#
OS環境：Windows Server2019
サーバー：Supermicro E300-9D
SAS HBA：　HPE SAS HBA
Storage:Seagate CORVAULT
#

# 1,　4UのストレージにHDDを106本充填

![Seagate CORVAULT.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478729/4b1f90a4-8c5a-16e0-23a0-62252844b04a.png)

別箱に入っているHDDを上からザクザクとひたすら差します。
全部で140Kgなので、良い子は一人で持たないように。
ドライブのスロット位置はこんな感じ。
![028.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478729/4eb250d3-7fc7-e132-cd5a-0db6e4b7823c.png)
な、長い。（1.2m）

# 2,　管理ツールにアクセス
デフォルトは https\://10.0.0.2
初期ユーザーを設定して早速RAID構築へGO！

![001.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478729/87a42d39-547b-eca4-91d6-7e10d8d0c194.png)

# 3, 推奨構成の8ボリュームで構築
RAIDの構築には3つの選択肢がある。
推奨構成だとチェックを入れて進むだけでRAIDだけではなくVolumeも作ってくれる。
１，Highest capacity＝2個のRAIDアレイと16個の論理ボリュームを自動で作成
２，Highest Sequential performance＝8個のRAIDアレイと8個の論理ボリュームを自動で作成
３，Manual = 自分でRAIDアレイを作成。ボリュームも別途自分で作成

![storage01.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478729/ddd1038a-17ec-7bf7-a4bc-06bed7d8a289.png)

まずは推奨の中のHighest Sequential Performanceを選択。
NEXT-NEXT-NEXTとデフォルト値でやっていると8個のRAIDとボリュームが完成！
それぞれのRAIDで２個まで壊れても大丈夫なので、
きれいに（？）壊れれば**1度に16個のドライブ障害があってもデータは保護される**という事。
まぁ、その時点で何かがもっとヤバいと思うけど。
イニシャライズは3日以上かかるので、バックグラウンドでゆっくりやってくれ。
![maxseq02.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478729/b7c8997e-7064-31cf-b84d-f3b71f9840ca.png)

電源入れてからここまで10分もかからない。


ちなみにここでLevelの所にあるADAPTがちょっと特殊なRAIDレベルのRAID ADAPTの事。
ザックリ言うと、従来型の遊んでるホットスペアを、各ディスクに分散させて再構築を並列処理するからとても早く終わるよ、というイレジャーコーディングベースのRAID。
MegaRAIDのようなRAIDカードでは実装不可能で、ZFSのdRAID的なもの、NetAppのDDPもだいたい同じ。
詳しくはこちら。
https://www.seagate.com/content/dam/seagate/migrated-assets/www-content/solutions/backup/backup-and-recovery/adapt-technology.pdf
https://cloud.watch.impress.co.jp/docs/cdc/report/1397185.html




# 4, マッピング
このストレージシステムは基本的にDASなので、SASケーブルで繋がっていれば使用可能なホストとして自動で認識します。
今回はHD-MiniSAS x2PortのHBAなので2つのイニシエーター(Port1/Port2)を自動で認識します。
手順としてはホストを作成し、見えているイニシエーターにチェックを入れるだけ。
あとは作ったボリュームをそのホストにマッピング。
(マッピング＝Attached to Hosts)


ボリュームを選んでホストを選択
![maxseq04.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478729/067a2ab4-83d0-66d8-69c5-d0a4b8fe62bf.png)
8個のボリュームをホストにマッピングするところ。
![maxseq05.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478729/08319ee2-f638-d3ac-50b3-74a92e25ff8c.png)


下記イメージ図。
イニシエーターがサーバーで、ターゲットがストレージという関係です。

```
　　　　イニシエーター側
-------------------------
|         Server         |Micro Server
-------------------------
|         SAS HBA        |SAS HBA
|Port1       | Port2     |HD-MiniSAS x2
-------------------------
  ||SAS Cable   ||SAS Cable
  ||            ||
-------------------------
|PortA       | PortA     |ストレージのSASポート
|Controller A|ControllerB|ストレージのコントローラ
-------------------------
|　　　Storage System　　 |
-------------------------
　　　　　ターゲット側

```
# 5, MPIOの設定
今回は２つのコントローラを冗長構成にするので、Windows側ではMPIOの設定をします。
①MPIOを追加
②MPIOを設定

①MPIOを追加
Windowsの機能の追加からMultipath I/Oにチェックを付けて進む。
![mpio01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478729/a608fe08-4b35-8777-5108-3fa3ffe8e2d6.png)

②MPIOを設定
Windowsの左下にある虫メガネマークにMPIOと入れると見つかります。
ウィザードで Add support for SAS Deviceにチェックをつけて、左隣のタブMPIO DevicesでAddを押して追加。

![mpio.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478729/f0f02583-f849-8fb2-3644-e6f7a98b49b5.png)
![mpio2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478729/e4b1f631-9126-e009-5517-3ab69e244eaa.png)

これで片方のコントローラやケーブルに問題があっても2重パスなので勝手にフェイルオーバーしてくれます。　助かる～
余談ですが、サーバーのPCIeのRAIDカードが壊れると交換するための手順がかなり煩雑で、シャットダウンっと起動アンドアプリケーション側の動作確認とかで、交換完了後データセンターから出たら真っ暗じゃん！なんて事も。。。
コントローラがホットスワップ冗長だと、壊れてもFailLEDがついている方をいきなりガチャコンで交換して終わり。コンフィグのバックアップも自動。
壊れないに越したことはないけど。

# 6, ディスクの管理
ディスクの管理で見るとちゃんと8個のディスクが見えています。
![maxseq06.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478729/868c2dc0-2c58-2b32-e78d-5a2c147d7a46.png)

# 7, WindowsのStorage poolと仮想ディスク
Windows側で8個の論理ディスクが見えたらStorage Poolを作ります。
ディスクの管理からやっても良いのですが、せっかくのサーバーOSなのでStorageSpaceにしましょう。
流れとしては以下の手順です。
Storage Pool
↓
Virtual Disk
↓
Volume作成


まず、プールの作成。
見えている8個全てを選んで新規プールを作成します。
![pool03.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478729/e35df993-3084-e34e-6015-d9b7d83d3c6a.png)

プール作成後そのまま仮想ディスクの作成。
すでにRAIDを組んであるのでSimpleを選択して続行。
![virtualdisk02.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478729/9b8e87d8-b053-7ec7-b670-717a96051455.png)

最後にボリュームも作成。
何も考えず最大容量でNTFSで作成します。
![lv04.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478729/bc9bfa72-513c-e874-33bc-671be370da34.png)

概念的にはこんな感じになります。
```

----------------------------------------------------------------
|			                  Dドライブ					        |1つのボリューム
|			                  1.36PB(NTFS)			        	|NTFSでフォーマットして使う
----------------------------------------------------------------
|			             Virtual drive(Simple)		        	|1つの仮想ディスク
|							                                 	|
----------------------------------------------------------------
|			               Storage pool		     	        	|1つのプール
|								                                |RAIDの集合体
---------------------------------------------------------------- 
|	    |	    |	    | 	    | 	    | 	    |	    | 	    |
|Vol01	|Vol02	|Vol03	|Vol04	|Vol05	|Vol06	|Vol07	|Vol08	|8個の論理Vol
----------------------------------------------------------------
|Ctr-A	|Ctr-A	|Ctr-A	|Ctr-A 	|Ctr-B 	|Ctr-B 	|Ctr-B 	|Ctr-B 	|8個のRAID
|ADAPT	|ADAPT	|ADAPT	|ADAPT	|ADAPT	|ADAPT	|ADAPT	|ADAPT	|それぞれで２個まで壊れても大丈夫
----------------------------------------------------------------
|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|
|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|
|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|
|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|106本のHDD
|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|
|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|HDD|
|HDD|   |HDD|   |HDD|   |HDD|HDD|HDD|   |HDD|   |HDD|   |HDD|HDD|

```

# 8, 制限事項
そもそもMicrosoft的にこのような大雑把な大容量は推奨なのか？は聞いてみましたが無回答（ノーレス）でしたので、、商用サービスでご使用の際は念のためMSさんに聞いてみてください。
そして返事もらえたら教えてください。
以下はWebで解る事。
Windows Server2019のStorage Poolの上限は4PB
Windows Server2019でNTFSでフォーマットできるのは最大8PB
Windows Server2019以前のバージョンでＮＴＦＳでフォーマットできるのは最大256TB
Windows Server2019のStorage Spaces Direct(S2D) ではボリュームとして64TBまでが推奨。
Windows Serverのデータ重複除去でサポートされるボリュームサイズは最大64TBです。
ボリューム シャドウ コピー サービス (VSS) も64TB


 
# 9, パフォーマンス

Windowsのディスクとして1.35PBってなんかすごい違和感。

![lv07.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478729/9d390b40-9296-f5e8-3bbb-eac449751b70.png)


パフォーマンスはATTOのベンチマークツールを使用。
**6.4GB/s!?**
![BMT.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478729/efa7d776-4100-6d75-4e24-8c1b118fe643.png)

自分の若いころは目指せ1GB/sとか言って奮闘してたのに！
こんなにあっさりと、6GB/s。。。


# 10, 106本丸ごとRAID

ちなみに構築で106本を丸ごとRAIDにして、1ボリュームにすることも可能。
これが最もシンプルな方法かもしれないけど、HDD故障を考えると106本のうち3本壊れると全部見えなくなるのはちょっと。。。
なので、推奨構成にしておいた方が安心ですね。
![manual all.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478729/02c3e9e7-2832-e30e-e1e3-ba16a16d5e6e.png)

#
以上簡単ですが。
いつか誰かのお役に立てば。