常識外れな ストレージサーバ 第1回 みんなの⾃宅鯖LT会
⾃⼰紹介 名前:冬華 蕐 仕事:ネットワーク/インフラエンジニア ISP:JPIX, Asahi-Net, NGN 管理セグメント:Private AS 64520-64550 SID 16001 Provider:Private Cloud, Private CDN 趣味:基礎数学、マルチテナントインフラ構築、DevOps環境作成
ストレージサーバってなに? ⼀般的なストレージサーバ ● ● ● ● Synology Buffalo I-O DATA QNAP 48TBぐらいまではお財布にやさしい設計
ストレージサーバってなに? ⼀般的なストレージサーバ ● ● ● ● Synology Buffalo I-O DATA QNAP でも逸 脱した ⽅々に 48TBぐらいまではお財布にやさしい設計 は、も のたり ません ね!?
普通のストレージサーバ ⼀般的な構成 ● ● ● ● ● NextCloud TrueNAS Core/Scale OpenMediaVault Unraid Rockstor インストールしたらwebUIが⽤意されていてすぐ利⽤出来るのが⾮常に便利です
ここまでは、よくある サーバの解説となります。
ここからは、私の環境の話
上級者向けのストレージサーバ ● ● ● ● DRBD Ceph MinIO サポートが.... GlusterFS 基本GUIというものもなくドキュメントも少ないOSS ストレージサーバ関連はセットアップが⾮常に⾯倒以外は⾮常に優秀なOSS
Cephクラスタ WAL/DB構成
物理構成 (Ceph⽤)/論理構成 Node1 ● ● ● ● Intel i3 13th 16GB RAM HDD 8TB x4 Segate (Exos) SSD 1TB x4 Samsun (Evo 750) Node1 ● ● ● Node2 (構築予定) Node2 (構築中) ● ● ● ● ● AMD Ryzen 5 5500X 16GB RAM HDD 16TB x8 ※未購⼊ SSD 1TB x8 ※未購⼊ NVME 16GB x8 ※未購⼊ Mon HDD 1TiB OSD type HDD PG 128 ● ● ● Mon NVMe 1TiB OSD Type HDD PG 512
実測値 実⾏数 ● ● VM数 12 コンテナ数 15 Network ● ● ● Storage 40Gbps Client 10Gbps Switch 1.44Tbps 読込速度 (同時実⾏) ● ● ● 24MiB/s (常時) 5GiB/s (⾼速時) 1.2TiB/s (復旧時) 書込み速度 (同時実⾏) ● ● ● ● 2MiB/s (遅延時) 300MiB/s (常時) 2.2GiB/s (⾼速時) 1.1TiB/s (復旧時)
構築について
はじめにやる事と⾔えば....
そうです。 Kernel rebuildingですね!!
Cephでも書ける、NVMe-oFでも建てられる Kernel Configの変更点 BLK_DEV_NVME initrd前にNVMe認識できる構成 NVME_MULTIPATH dm-multipath使わずネイティブMP NVME_AUTH / NVME_HOST_AUTH DH-HMAC-CHAPでホスト認証 NVME_TCP_TLS / NVME_TARGET_TCP_TLS NVMe/TCP の TLS in-flight暗号化 NVME_TARGET ⾃分でNVMe-oFサーバになれる CEPH_FS / CEPH_LIB CephFS kernel client NVME_RDMA / NVME_TARGET_RDMA 速度優先はRDMA、暗号化優先はTCP/TLS
ブロック層の「使うものを選ぶ」判断 Kernel Configの変更点 BLK_CGROUP_IOLATENCY レイテンシベースの古いcgroup IO制御を捨てた BLK_CGROUP_IOCOST 代わりにコストモデルベースに BCACHE / DM_CACHE SSDキャッシュ BLK_WBT writeback throttling(後でランタイム調整余 地) BLK_DEV_INTEGRITY T10 DIF/DIX、エンタープライズNVMeで効く BLK_SED_OPAL Self-Encrypting Drive制御
低レイテンシは「振る舞いの⾃由度」で取りに⾏く Kernel Configの変更点 RCU_NOCB_CPU RCUコールバックoffload可能 PREEMPT_DYNAMIC 起動パラメータでpreemptモード切替 SCHED_CORE コアスケジューリング HZ_1000 サーバ標準tick NR_CPUS 物理CPUコアが将来増えても対応 C-state制限+performanceガバナ NVMeのレイテンシ/IOPSに⼀番効く
帯域はCPUを遊ばせず、I/Oを束ねて取りに⾏く Kernel Configの変更点 NO_HZ_IDLE アイドル時tickless PREEMPT_DYNAMIC → preempt=none/voluntary プリエンプトを薄くして⽂脈切替を削る IO_URING_ZCRX ゼロコピー受信でCPU/byteを下げる HZ_250 サーバ標準tick NVME_RDMA / NVME_TARGET_RDMA RoCEで転送をCPUオフロード HUGETLBFS / TRANSPARENT_HUGEPAGE ⼤ページでTLBミス減(RocksDBはmadvise注 意) MQ_IOSCHED_DEADLINE / BFQ HDDは束ねるスケジューラ、NVMeはnone
ITインフラ集会 VRChatのイベントで、ITインフラの雑談やLTをしています
引⽤リンク 参考文献 Synology - FS200T https://www.synology.com/ja-jp/products/FS200T Ceph Architecture Buffalo - LS220D1202G https://www.buffalo.jp/product/detail/ls220d1202g.html CRUSH https://ceph.io/assets/pdfs/weil-crush-sc06.pdf I-O DATA - HDL2-TA8 https://www.iodata.jp/lib/product/h/6571.htm Linux Kernel Documentation https://docs.kernel.org/ QNAP - TS-h886 https://www.qnap.com/ja-jp/product/ts-h886 TrueNAS Logos https://www.truenas.com/legal/logos/ NextCloud Logo https://nextcloud.com/press/#logo-resources https://docs.ceph.com/en/latest/architecture/
ご清聴ありがとうございました。