Menu Close
Settings Close

Language and Page Formatting Options

15.4. 更新後の設定の変更

すべての機能が予想通りに機能するように、更新後に追加の設定手順が必要になる場合があります。

15.4.1. ローカルストレージがサポートするクラスターの更新後の設定

Red Hat OpenShift Container Platform 4.6 以降で、ローカルストレージ Operator はローカルストレージを管理するための新規のカスタムリソースタイプを提供します。

  • LocalVolumeDiscovery
  • LocalVolumeSet

これらのリソースタイプは、以前のバージョンからの更新の一部として自動的に処理されないため、手動で作成する必要があります。

15.4.1.1. コマンドラインを使用した LocalVolumeDiscovery カスタムリソースの作成

LocalVolumeDiscovery カスタムリソースを作成し、デバイス管理ユーザーインターフェースがローカルデバイスの状態を検知できるようにし、クラスターノードで利用可能なデバイスについての情報を提供します。

前提条件

  • OpenShift Container Platform クラスターへの管理者アクセス。

手順

  1. ローカルストレージ Operator がインストールされているプロジェクトに切り替えます。

    $ oc project local-storage-project

    local-storage-project はローカルストレージプロジェクトの名前に置き換えます。

    バージョン 4.5 以前では、デフォルトのローカルストレージプロジェクトの名前は local-storage です。バージョン 4.6 以降では、デフォルトのローカルストレージプロジェクトの名前は openshift-local-storage です。

  2. LocalVolumeDiscovery カスタムリソースを定義します。

    たとえば、local-volume-discovery.yaml ファイルで以下を定義します。

    apiVersion: local.storage.openshift.io/v1alpha1
    kind: LocalVolumeDiscovery
    metadata:
      name: auto-discover-devices
    spec:
      nodeSelector:
        nodeSelectorTerms:
          - matchExpressions:
              - key: kubernetes.io/hostname
                operator: In
                values:
                  - worker1.example.com
                  - worker2.example.com
                  - worker3.example.com
  3. LocalVolumeDiscovery カスタムリソースを作成します。

    $ oc create -f local-volume-discovery.yaml

検証手順

  1. OpenShift Web コンソールにログインします。
  2. ComputeNode をクリックし、ノードの名前をクリックします。
  3. Disks タブをクリックして、そのノードで利用可能なデバイスが表示されることを確認します。

15.4.1.2. コマンドラインを使用した LocalVolumeSet カスタムリソースの作成

LocalVolumeSet カスタムリソースを作成し、指定する条件に基づいて特定のストレージデバイスを永続ボリュームとして自動的にプロビジョニングします。永続ボリュームは、deviceInclusionSpec の条件に一致する任意のノードで nodeSelector の条件準に一致するデバイスについて作成されます。

前提条件

  • OpenShift Container Platform クラスターへの管理者アクセス。

手順

  1. local-volume-set.yaml ファイルで LocalVolumeSet カスタムリソースを定義します。

    apiVersion: local.storage.openshift.io/v1alpha1
    kind: LocalVolumeSet
    metadata:
      name: localblock
    spec:
      nodeSelector:
        nodeSelectorTerms:
          - matchExpressions:
              - key: kubernetes.io/hostname
                operator: In
                values:
                  - worker1.example.com
                  - worker2.example.com
                  - worker3.example.com
      storageClassName: localblock
      volumeMode: Block
      maxDeviceCount: 10 # optional, limit devices provisioned per node
      deviceInclusionSpec:
        deviceTypes: # list of types to allow
          - disk
          - part # omit this to use only whole devices
        deviceMechanicalProperty:
          - NonRotational
        minSize: 100Gi # optional, minimum size of device to allow
        maxSize: 100Ti # optional, maximum size of device to allow
        models: # (optional) list of models to allow
          - SAMSUNG
          - Crucial_CT525MX3
        vendors: # (optional) list of device vendors to allow
          - ATA
          - ST2000LM

    上記の定義では、worker1worker2worker3 から、ローテーションされないデバイスの特定モデルにあるディスク全体またはパーティションの内、サイズが 100 GB から 100 TB で、指定のベンダーが提供しているものを選択します。localblock ストレージクラスが作成され、永続ボリュームが検出されたデバイスからプロビジョニングされます。

    重要

    minSize に適切な値を選択し、システムパーティションが選択されないようにします。

  2. LocalVolumeSet を作成します。

    $ oc create -f local-volume-set.yaml

検証手順

  1. 以下のコマンドを使用して、deviceInclusionSpec に一致するデバイスの永続ボリュームのプロビジョニングを追跡します。永続ボリュームをプロビジョニングするのに数分かかる場合があります。

    $ oc describe localvolumeset localblock
    [...]
    Status:
      Conditions:
        Last Transition Time:          2020-11-17T05:03:32Z
        Message:                       DiskMaker: Available, LocalProvisioner: Available
        Status:                        True
        Type:                          DaemonSetsAvailable
        Last Transition Time:          2020-11-17T05:03:34Z
        Message:                       Operator reconciled successfully.
        Status:                        True
        Type:                          Available
      Observed Generation:             1
      Total Provisioned Device Count: 4
    Events:
    Type    Reason      Age          From                Message
    ----    ------      ----         ----                -------
    Normal  Discovered  2m30s (x4    localvolumeset-     ip-10-0-147-124.us-east-
            NewDevice   over 2m30s)  symlink-controller  2.compute.internal -
                                                         found possible matching
                                                         disk, waiting 1m to claim
    Normal  FoundMatch  89s (x4      localvolumeset-     ip-10-0-147-124.us-east-
            ingDisk     over 89s)    symlink-controller  2.compute.internal -
                                                         symlinking matching disk
  2. プロビジョニングされた永続ボリュームの状態を確認します。

    $ oc get pv
                         ACCESS   RECLAIM             STORAGE
    NAME       CAPACITY  MODES    POLICY   STATUS     CLASS       AGE
    local-pv-  500Gi     RWO      Delete   Available  localblock  7m48s
    3584969f
    local-pv-  500Gi     RWO      Delete   Available  localblock  7m48s
    3aee84fa
    local-pv-  500Gi     RWO      Delete   Available  localblock  7m48s
    644d09ac
    local-pv-  500Gi     RWO      Delete   Available  localblock  7m48s
    c73cee1

15.4.1.3. アノテーションの追加

以下の手順を使用して、以前のバージョンから OpenShift Container Storage 4.6 へのアップグレード時に、アノテーションをストレージクラスターに追加し、ユーザーインターフェースを使用して、障害のあるストレージデバイスを交換できるようにします。

手順

  1. OpenShift Container Platform Web コンソールにログインします。
  2. HomeSearch をクリックします。
  3. ResourcesStorageCluster を検索してクリックします。
  4. ocs-storagecluster の横にあるアクションメニュー (⋮)Edit annotations をクリックします。
  5. KEYVALUE にそれぞれ cluster.ocs.openshift.io/local-devicestrue を追加します。
  6. Save をクリックします。