Slide 1

Slide 1 text

OpenShift Virtualizationのストレージ、 しゃべりたいだけしゃべる Red Hat K.K. Solution Architect うつぼ(宇都宮卓也) OpenShift Lounge+ “TALKs” ~ Virtのお供スペシャル~

Slide 2

Slide 2 text

$ whoami 2 kind: HumanBeings metadata: name: 宇都宮 卓也 spec: group: レッドハット株式会社 title: ソリューションアーキテクト born: 大阪 age: 43歳 favorites: technology: [“ストレージ”, “KubeVirt”] hobby: [“プロレス”, “麻雀”, “将棋”, “スピードキュービング”, “けん玉”] drink: [“ワイン”, “ビール”, “無糖サワー”] annoyance: [“老眼開始”, “もうずっと疲れが取れない”] うつぼ @japan_rook https://www.shoeisha.co.jp/book/detail/ 9784798175027

Slide 3

Slide 3 text

インフラの三大要素 3 コンピュート ネットワーク ストレージ

Slide 4

Slide 4 text

OpenShift Virtualization のストレージの特徴 4 ▸ 仮想マシンが使う仮想ディスクは Persistent Volume が使われる。 ▸ vSphere における VMDK のようなファイルではなく、論理ボリューム(LUN, volume等)が Persistent Volume としてそのまま仮想マシンに接続される。 → 仮想ディスクごとにストレージ側で論理ボリュームが作られる。 vm01.vmdk VM Folder(vm01) Datastore vSphere vm01_2.vmdk vm01 OCP Backend Storage FC / iSCSI / NFS Backend Storage LUN vm01 LUN1 LUN2 FC / iSCSI / NFS PV1 PV2 Storage Class Virtual disk Virtual disk

Slide 5

Slide 5 text

Persistent Volume / Persistent Volume Claim ● Persistent Volume (PV) ○ OpenShift の Pod が利用できる永続ストレージ ○ 様々な形態のストレージを抽象化した姿 LUN, volume, ... VMDK, QCOW2, ... Persistent Volume 物理サーバー 仮想サーバー OpenShift/ Kubernetes Pod ● Persistent Volume Claim (PVC) ○ セルフサービスで PV を取得するためのリクエスト ○ リクエスト内容に合致する PV があれば割り当てる 1. ユーザーがPVをリク エスト(PVC作成) 3. Pod に attach App 2. PVを割り当て (Bind) apiVersion: v1 kind: PersistentVolumeClaim metadata: name: app-pvc spec: accessModes: - ReadWriteOnce volumeMode: Filesystem resources: requests: storage: 10Gi storageClassName: gp3-csi PVCの例 5

Slide 6

Slide 6 text

Storage Class 6 ● バックエンドのストレージシステムを抽象化した姿 ● PVC では Storage Class を指定する。 ○ 指定しない場合は default Storage Class が使われる Storage Class Storage Class Storage Class Hardware-appliance Storage Cloud Storage Software-defined Storage apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: gp3-csi provisioner: ebs.csi.aws.com Parameters: encrypted: ”true” type: gp3 reclaimPolicy: Delete allowVolumeExpansion: true volumeBindingMode: WaitForFirstConsumer AWS EBSのStorageClassの例

Slide 7

Slide 7 text

最近のストレージはたくさん Volume を作れる 7 ● ODF:1000個 per node ● Hitachi VSP E590:32768個 ● EMC PowerFlex:131,072 個 (含snapshot) ● IBM FlashSystem 5000:8192 個 大抵のケースでは問題にならない。けど、必ずストレージベンダに確認してもらいましょう

Slide 8

Slide 8 text

仮想マシンが使う仮想ディスク ● PersistentVolume (PV) のパラダイムを使用 ● 利用できる PV バックエンド ○ OpenShift Data Foundation ○ 3rd party ストレージ ○ hostpath provisioner / LVM Operator ● ライブマイグレーションには RWX アクセスモードが必須 ● VirtIO または SCSI コントローラでディスクに接続 ○ VM 定義に依存 ● Boot OrderはVMの定義で変更可能 8

Slide 9

Slide 9 text

アクセスモード ● PVへのアクセス制御のモード ● バックエンドのストレージシステムによって、使用できるアクセスモードは異なる ○ 使用できないAccess Modeを指定した場合はPVCが失敗し、PVはBindされない Read Write Once (RWO) ○ 1ノードからRead/Write可能 ○ ほぼ全てのストレージで利用可能 ○ 最も利用されることが多い基本のモー ド Read Only Many (ROX) ○ 複数ノードから同時にRead-Onlyでア クセス可能 ○ あまり使われることはなく、用途として は限定される Read Write Many (RWX) ○ 複数ノードから同時にRead/Write可 能 ○ 基本的にはファイルストレージで利用 可能 PV PV ReadOnly PV 9 OpenShift Virtualization で使うなら RWX ができるか ストレージベンダに確認しよう!

Slide 10

Slide 10 text

仮想マシンが使う仮想ディスク ● PersistentVolume (PV) のパラダイムを使用 ● 利用できる PV バックエンド ○ OpenShift Data Foundation ○ 3rd party ストレージ ○ hostpath provisioner / LVM Operator ● ライブマイグレーションには RWX アクセスモードが必須 ● VirtIO または SCSI コントローラでディスクに接続 ○ VM 定義に依存 ● Boot OrderはVMの定義で変更可能 10 DVとは?

Slide 11

Slide 11 text

Data Volume ● PVC を実体とする仮想ディスクを抽象化したカスタムリソース ● 1 つの Data Volume で 1 つの PVC が作られる ● データソースにディスクイメージを指定することで、 PVC にイメージ を取り込める ○ Webサーバ、S3、コンテナレジストリからインポート ○ 既存の PVC, VolumeSnapshot からクローン ○ ローカルのイメージファイルのアップロード ● Containerized Data Importer (CDI) がインポート作業を行う 11

Slide 12

Slide 12 text

Containerized Data Importer (CDI) 12 Data Source Data Volume CDI Controller PVC PV VM ① ユーザが Data Volume を持つ仮想マシンを 作成する。 ② PVC の要求を満たす PV が払い出され、 PVC に Bind する。 ③ CDI コントローラが Importer Pod を作成し、 PVC をマウントする。 ④ Data Source から PVC に仮想ディスクイメー ジがインポートされる。インポートが完了する と、Importer Pod は破棄される。 ⑤ 仮想マシンが PVC を利用できるようになり、 起動する。 Requests Importer Pod Writes Creates 1 2 3 4 User 5

Slide 13

Slide 13 text

CDI や Data Volume についてはブログをご覧下さい 13 https://rheb.hatenablog.com/entry/ocpv-disk

Slide 14

Slide 14 text

OpenShift Virtualization のストレージに関して思うこと 14 ● ストレージ側でボリュームを管理するのは無理。ストレージ管理者は OpenShift で PVC を管理しましょう。 ● 好きなストレージを使いましょう。ただしベンダーにきちんと確認はしましょう。 ○ CSI ドライバは落とし穴がちらほら。 ○ OpenShift Virtualization Certified なストレージだと安心。 ● SDS を使う場合は容量と性能には注意しましょう。 ○ SDS はレプリケーションで冗長化するパターンが多いので、容量効率は下がります。 ○ 二重/三重レプリカすると、 write のレイテンシは落ち気味です。 ● バックアップは取りましょう。リストアできることを確認しましょう。 ○ Snapshot だけでもいいですが、外部に取るほうがより安心。 ○ OpenShift Virtualization Certified なバックアップソフトウェア を使いましょう。

Slide 15

Slide 15 text

ストレージは正直簡単ではないですが、 邪悪な存在ではありません。 正しく上手に付き合えば、手懐けられま す。 お気軽に、ストレージベンダーと Red Hat にご相談下さい。

Slide 16

Slide 16 text

linkedin.com/company/red-hat youtube.com/user/RedHatVideos facebook.com/redhatinc twitter.com/RedHat Red Hat is the world’s leading provider of enterprise open source software solutions. Award-winning support, training, and consulting services make Red Hat a trusted adviser to the Fortune 500. Thank you