4.3. CRUSH ロケーションをデーモンに設定する


ストレッチモードに入る前に、CRUSH ロケーションを Red Hat Ceph Storage クラスターのデーモンに設定して、クラスターを準備する必要があります。これには 2 つの方法があります。

  • サービス設定ファイルを介してクラスターをブートストラップします。このファイルでは、配置の一部として場所がホストに追加されます。
  • クラスターがデプロイされた後、ceph osd crush add-bucket および ceph osd crush move コマンドを使用して、場所を手動で設定します。

方法 1: クラスターのブートストラップ

前提条件

  • ノードへの root レベルのアクセス。

手順

  1. 新しいストレージクラスターをブートストラップする場合は、ノードを Red Hat Ceph Storage クラスターに追加し、サービスを実行する場所に特定のラベルを設定するサービス設定 .yaml ファイルを作成できます。

    service_type: host
    addr: host01
    hostname: host01
    location:
      root: default
      datacenter: DC1
    labels:
      - osd
      - mon
      - mgr
    ---
    service_type: host
    addr: host02
    hostname: host02
    location:
      datacenter: DC1
    labels:
      - osd
      - mon
    ---
    service_type: host
    addr: host03
    hostname: host03
    location:
      datacenter: DC1
    labels:
      - osd
      - mds
      - rgw
    ---
    service_type: host
    addr: host04
    hostname: host04
    location:
      root: default
      datacenter: DC2
    labels:
      - osd
      - mon
      - mgr
    ---
    service_type: host
    addr: host05
    hostname: host05
    location:
      datacenter: DC2
    labels:
      - osd
      - mon
    ---
    service_type: host
    addr: host06
    hostname: host06
    location:
      datacenter: DC2
    labels:
      - osd
      - mds
      - rgw
    ---
    service_type: host
    addr: host07
    hostname: host07
    labels:
      - mon
    ---
    service_type: mon
    placement:
      label: "mon"
    ---
    service_id: cephfs
    placement:
      label: "mds"
    ---
    service_type: mgr
    service_name: mgr
    placement:
      label: "mgr"
    ---
    service_type: osd
    service_id: all-available-devices
    service_name: osd.all-available-devices
    placement:
      label: "osd"
    spec:
      data_devices:
        all: true
    ---
    service_type: rgw
    service_id: objectgw
    service_name: rgw.objectgw
    placement:
      count: 2
      label: "rgw"
    spec:
      rgw_frontend_port: 8080
    Copy to Clipboard Toggle word wrap

  2. --apply-spec オプションを使用してストレージクラスターをブートストラップします。

    構文

    cephadm bootstrap --apply-spec CONFIGURATION_FILE_NAME --mon-ip MONITOR_IP_ADDRESS --ssh-private-key PRIVATE_KEY --ssh-public-key PUBLIC_KEY --registry-url REGISTRY_URL --registry-username USER_NAME --registry-password PASSWORD
    Copy to Clipboard Toggle word wrap

    [root@host01 ~]# cephadm bootstrap --apply-spec initial-config.yaml --mon-ip 10.10.128.68 --ssh-private-key /home/ceph/.ssh/id_rsa --ssh-public-key /home/ceph/.ssh/id_rsa.pub --registry-url registry.redhat.io --registry-username myuser1 --registry-password mypassword1
    Copy to Clipboard Toggle word wrap

    重要

    cephadm bootstrap コマンドでは、さまざまなコマンドオプションを使用できます。ただし、サービス設定ファイルを使用して、ホストの場所を設定するには、--apply-spec オプションを常に含めてください。

方法 2: デプロイメント後に場所を設定する

前提条件

  • ノードへの root レベルのアクセス。

手順

  1. 非 tiebreaker モニターの場所を設定する予定の 2 つのバケットを CRUSH マップに追加し、バケットタイプを datacenter として指定します。

    構文

    ceph osd crush add-bucket BUCKET_NAME BUCKET_TYPE
    Copy to Clipboard Toggle word wrap

    [ceph: root@host01 /]# ceph osd crush add-bucket DC1 datacenter
    [ceph: root@host01 /]# ceph osd crush add-bucket DC2 datacenter
    Copy to Clipboard Toggle word wrap

  2. root=default の下にバケットを移動します。

    構文

    ceph osd crush move BUCKET_NAME root=default
    Copy to Clipboard Toggle word wrap

    [ceph: root@host01 /]# ceph osd crush move DC1 root=default
    [ceph: root@host01 /]# ceph osd crush move DC2 root=default
    Copy to Clipboard Toggle word wrap

  3. 必要な CRUSH 配置に従って、OSD ホストを移動します。

    構文

    ceph osd crush move HOST datacenter=DATACENTER
    Copy to Clipboard Toggle word wrap

    [ceph: root@host01 /]# ceph osd crush move host01 datacenter=DC1
    Copy to Clipboard Toggle word wrap

4.3.1. ストレッチモードに入る

新しいストレッチモードは、2 つのサイトを処理するように、設計されています。2 サイトクラスターでは、コンポーネントの可用性が失われるリスクが低くなります。

前提条件

  • ノードへの root レベルのアクセス。
  • CRUSH ロケーションがホストに設定されている。

手順

  1. CRUSH マップに合わせて、各モニターの位置を設定します。

    構文

    ceph mon set_location HOST datacenter=DATACENTER
    Copy to Clipboard Toggle word wrap

    [ceph: root@host01 /]# ceph mon set_location host01 datacenter=DC1
    [ceph: root@host01 /]# ceph mon set_location host02 datacenter=DC1
    [ceph: root@host01 /]# ceph mon set_location host04 datacenter=DC2
    [ceph: root@host01 /]# ceph mon set_location host05 datacenter=DC2
    [ceph: root@host01 /]# ceph mon set_location host07 datacenter=DC3
    Copy to Clipboard Toggle word wrap

  2. 各データセンターに 2 つのコピーを配置する CRUSH ルールを生成します。

    構文

    ceph osd getcrushmap > COMPILED_CRUSHMAP_FILENAME
    crushtool -d COMPILED_CRUSHMAP_FILENAME -o DECOMPILED_CRUSHMAP_FILENAME
    Copy to Clipboard Toggle word wrap

    [ceph: root@host01 /]# ceph osd getcrushmap > crush.map.bin
    [ceph: root@host01 /]# crushtool -d crush.map.bin -o crush.map.txt
    Copy to Clipboard Toggle word wrap

    1. 逆コンパイルされた CRUSH マップファイルを編集して、新しいルールを追加します。

      rule stretch_rule {
              id 1 
      1
      
              type replicated
              min_size 1
              max_size 10
              step take DC1 
      2
      
              step chooseleaf firstn 2 type host
              step emit
              step take DC2 
      3
      
              step chooseleaf firstn 2 type host
              step emit
      }
      Copy to Clipboard Toggle word wrap

      1
      ルール id は一意である必要があります。この例では、ID 0 のルールがもう 1 つしかないため、ID 1 が使用されますが、既存のルールの数に応じて、別のルール ID を使用する必要がある場合があります。
      2 3
      この例では、DC1 および DC2 という名前の 2 つのデータセンターバケットがあります。
      注記

      このルールにより、クラスターはデータセンター DC1 に対して読み取りアフィニティーを持ちます。したがって、すべての読み取りまたは書き込みは、DC1 に配置された Ceph OSD を介して行われます。

      これが望ましくなく、読み取りまたは書き込みがゾーン全体に均等に分散される場合、CRUSH ルールは次のようになります。

      rule stretch_rule {
      id 1
      type replicated
      min_size 1
      max_size 10
      step take default
      step choose firstn 0 type datacenter
      step chooseleaf firstn 2 type host
      step emit
      }
      Copy to Clipboard Toggle word wrap

      このルールでは、データセンターはランダムかつ自動的に選択されます。

      firstn および indep オプションの詳細は、CRUSH ルール を参照してください。

  3. CRUSH マップを挿入して、クラスターでルールを使用できるようにします。

    構文

    crushtool -c DECOMPILED_CRUSHMAP_FILENAME -o COMPILED_CRUSHMAP_FILENAME
    ceph osd setcrushmap -i COMPILED_CRUSHMAP_FILENAME
    Copy to Clipboard Toggle word wrap

    [ceph: root@host01 /]# crushtool -c crush.map.txt -o crush2.map.bin
    [ceph: root@host01 /]# ceph osd setcrushmap -i crush2.map.bin
    Copy to Clipboard Toggle word wrap

  4. 接続モードでモニターを実行しない場合は、選択戦略を connectivity に設定します。

    [ceph: root@host01 /]# ceph mon set election_strategy connectivity
    Copy to Clipboard Toggle word wrap

  5. tiebreaker モニターの場所をデータセンター間で分割するように設定して、ストレッチモードに入ります。

    構文

    ceph mon set_location HOST datacenter=DATACENTER
    ceph mon enable_stretch_mode HOST stretch_rule datacenter
    Copy to Clipboard Toggle word wrap

    [ceph: root@host01 /]# ceph mon set_location host07 datacenter=DC3
    [ceph: root@host01 /]# ceph mon enable_stretch_mode host07 stretch_rule datacenter
    Copy to Clipboard Toggle word wrap

    この例では、モニター mon.host07 が tiebreaker です。

    重要

    タイブレーカーモニターの場所は、以前に非 tiebreaker モニターを設定したデータセンターとは異なる必要があります。上記の例では、データセンター DC3 です。

    重要

    ストレッチモードに入ろうとすると、次のエラーが発生するため、このデータセンターを CRUSH マップに追加しないでください。

    Error EINVAL: there are 3 datacenters in the cluster but stretch mode currently only works with 2!
    Copy to Clipboard Toggle word wrap
    注記

    Ceph をデプロイするための独自のツールを作成している場合、ceph mon set_location コマンドを実行する代わりに、モニターの起動時に新しい --set-crush-location オプションを使用できます。このオプションは、ceph-mon --set-crush-location 'datacenter=DC1' など、1 つの bucket=location ペアのみを受け入れます。これは、enable_stretch_mode コマンドの実行時に指定したバケットタイプに一致する必要があります。

  6. ストレッチモードが正常に有効になっていることを確認します。

    [ceph: root@host01 /]# ceph osd dump
    
    epoch 361
    fsid 1234ab78-1234-11ed-b1b1-de456ef0a89d
    created 2023-01-16T05:47:28.482717+0000
    modified 2023-01-17T17:36:50.066183+0000
    flags sortbitwise,recovery_deletes,purged_snapdirs,pglog_hardlimit
    crush_version 31
    full_ratio 0.95
    backfillfull_ratio 0.92
    nearfull_ratio 0.85
    require_min_compat_client luminous
    min_compat_client luminous
    require_osd_release quincy
    stretch_mode_enabled true
    stretch_bucket_count 2
    degraded_stretch_mode 0
    recovering_stretch_mode 0
    stretch_mode_bucket 8
    Copy to Clipboard Toggle word wrap

    Stretch_mode_enabledtrue に設定する必要があります。また、ストレッチバケット、ストレッチモードバケットの数、およびストレッチモードが低下しているか回復しているかを確認することもできます。

  7. モニターが適切な場所にあることを確認します。

    [ceph: root@host01 /]# ceph mon dump
    
    epoch 19
    fsid 1234ab78-1234-11ed-b1b1-de456ef0a89d
    last_changed 2023-01-17T04:12:05.709475+0000
    created 2023-01-16T05:47:25.631684+0000
    min_mon_release 16 (pacific)
    election_strategy: 3
    stretch_mode_enabled 1
    tiebreaker_mon host07
    disallowed_leaders host07
    0: [v2:132.224.169.63:3300/0,v1:132.224.169.63:6789/0] mon.host07; crush_location {datacenter=DC3}
    1: [v2:220.141.179.34:3300/0,v1:220.141.179.34:6789/0] mon.host04; crush_location {datacenter=DC2}
    2: [v2:40.90.220.224:3300/0,v1:40.90.220.224:6789/0] mon.host01; crush_location {datacenter=DC1}
    3: [v2:60.140.141.144:3300/0,v1:60.140.141.144:6789/0] mon.host02; crush_location {datacenter=DC1}
    4: [v2:186.184.61.92:3300/0,v1:186.184.61.92:6789/0] mon.host05; crush_location {datacenter=DC2}
    dumped monmap epoch 19
    Copy to Clipboard Toggle word wrap

    また、どのモニターが tiebreaker であるか、およびモニターの選択戦略も確認できます。

4.3.2. ストレッチモード用の CRUSH マップを設定する

この情報を使用して、ストレッチモードの CRUSH マップを設定します。

前提条件

始める前に、次の前提条件が満たされていることを確認してください。

  • ノードへの root レベルのアクセス。
  • CRUSH ロケーションがホストに設定されている。

手順

  1. crushtool コマンドを使用するために ceph-base RPM パッケージをインストールして、この OSD クラッシュトポロジーを利用する CRUSH ルールを作成します。

    構文

    dnf -y install ceph-base
    Copy to Clipboard Toggle word wrap

  2. コンパイルされた CRUSH マップをクラスターから取得します。

    構文

    ceph osd getcrushmap > /etc/ceph/crushmap.bin
    Copy to Clipboard Toggle word wrap

  3. CRUSH マップを逆コンパイルし、テキストファイルに変換して編集します。

    構文

    crushtool -d /etc/ceph/crushmap.bin -o /etc/ceph/crushmap.txt
    Copy to Clipboard Toggle word wrap

  4. ファイルの末尾にある /etc/ceph/crushmap.txt を編集して、以下のルールを CRUSH マップに追加します。このルールは、読み取りと書き込みをデータセンター全体に均等に分散します。

    構文

    rule stretch_rule {
            id 1
            type replicated
            step take default
            step choose firstn 0 type datacenter
            step chooseleaf firstn 2 type host
            step emit
     }
    Copy to Clipboard Toggle word wrap

    1. 必要に応じて、データセンター 1 に対する読み取り/書き込みアフィニティーを持つクラスターを作成します。

      構文

      rule stretch_rule {
               id 1
               type replicated
               step take DC1
               step chooseleaf firstn 2 type host
               step emit
               step take DC2
               step chooseleaf firstn 2 type host
               step emit
       }
      Copy to Clipboard Toggle word wrap

      The CRUSH rule declared contains the following information:
           Rule name
                Description: A unique name for identifying the rule.
                Value: stretch_rule
           id
                Description: A unique whole number for identifying the rule.
                Value: 1
           type
                Description: Describes a rule for either a storage drive replicated or erasure-coded.
                Value: replicated
           step take default
                Description: Takes the root bucket called default, and begins iterating down the tree.
           step take DC1
                Description: Takes the bucket called DC1, and begins iterating down the tree.
           step choose firstn 0 type datacenter
                Description: Selects the datacenter bucket, and goes into its subtrees.
           step chooseleaf firstn 2 type host
                Description: Selects the number of buckets of the given type. In this case, it is two different hosts located in the datacenter it entered at the previous level.
           step emit
                Description: Outputs the current value and empties the stack. Typically used at the end of a rule, but may also be used to pick from different trees in the same rule.
      Copy to Clipboard Toggle word wrap
  5. /etc/ceph/crushmap.txt から新しい CRUSH マップをコンパイルし、バイナリーファイル /etc/ceph/crushmap2.bin に変換します。

    構文

    crushtool -c /path/to/crushmap.txt -o /path/to/crushmap2.bin
    Copy to Clipboard Toggle word wrap

    [ceph: root@host01 /]# crushtool -c /etc/ceph/crushmap.txt -o /etc/ceph/crushmap2.bin
    Copy to Clipboard Toggle word wrap

  6. 新しく作成された CRUSH マップをクラスターに再度注入します。

    構文

    ceph osd setcrushmap -i /path/to/compiled_crushmap
    Copy to Clipboard Toggle word wrap

    [ceph: root@host01 /]# ceph osd setcrushmap -i /path/to/compiled_crushmap
    17
    Copy to Clipboard Toggle word wrap

    注記

    数字 17 はカウンターであり、CRUSH マップに加えられた変更に応じて増加します (18、19 など)。

検証

新しく作成された stretch_rule が使用可能であることを確認します。

構文

ceph osd crush rule ls
Copy to Clipboard Toggle word wrap

[ceph: root@host01 /]# ceph osd crush rule ls

replicated_rule
stretch_rule
Copy to Clipboard Toggle word wrap

4.3.2.1. ストレッチモードへの切り替え

ストレッチモードは 2 つのサイトを処理するように設計されています。2 サイトクラスターでは、コンポーネントの可用性が失われるリスクが低くなります。

前提条件

始める前に、次の前提条件が満たされていることを確認してください。

  • ノードへの root レベルのアクセス。
  • CRUSH ロケーションがホストに設定されている。
  • ストレッチルールを含むように設定された CRUSH マップ。
  • クラスター内にイレイジャーコーディングされたプールがない。
  • 2 つのサイトの重みが同じである。

手順

  1. モニターが使用する現在の選出ストラテジーを確認します。

    構文

    ceph mon dump | grep election_strategy
    Copy to Clipboard Toggle word wrap

    注記

    Ceph クラスターの election_strategy は、デフォルトで 1 に設定されています。

    [ceph: root@host01 /]# ceph mon dump | grep election_strategy
    
    dumped monmap epoch 9
    election_strategy: 1
    Copy to Clipboard Toggle word wrap

  2. 選出ストラテジーを connectivity に変更します。

    構文

    ceph mon set election_strategy connectivity
    Copy to Clipboard Toggle word wrap

    選出ストラテジーの設定の詳細は、モニター選択ストラテジーの設定 を参照してください。

  3. ceph mon dump コマンドを使用して、選出ストラテジーが 3 に更新されたことを確認します。

    [ceph: root@host01 /]# ceph mon dump | grep election_strategy
    
    dumped monmap epoch 22
    election_strategy: 3
    Copy to Clipboard Toggle word wrap

  4. tiebreaker モニターの場所を、データセンター間で分割するように設定します。

    構文

    ceph mon set_location TIEBREAKER_HOST datacenter=DC3
    Copy to Clipboard Toggle word wrap

    [ceph: root@host01 /]# ceph mon set_location host07 datacenter=DC3
    Copy to Clipboard Toggle word wrap

  5. tiebreaker モニターが期待どおりに設定されていることを確認します。

    構文

    ceph mon dump
    Copy to Clipboard Toggle word wrap

    [ceph: root@host01 /]# ceph mon dump
    
    epoch 8
    
    fsid 4158287e-169e-11f0-b1ad-fa163e98b991
    
    last_changed 2025-04-11T07:14:48.652801+0000
    
    created 2025-04-11T06:29:24.974553+0000
    
    min_mon_release 19 (squid)
    
    election_strategy: 3
    
    0: [v2:10.0.57.33:3300/0,v1:10.0.57.33:6789/0] mon.host07; crush_location {datacenter=DC3}
    
    1: [v2:10.0.58.200:3300/0,v1:10.0.58.200:6789/0] mon.host05; crush_location {datacenter=DC2}
    
    2: [v2:10.0.58.47:3300/0,v1:10.0.58.47:6789/0] mon.host02; crush_location {datacenter=DC1}
    
    3: [v2:10.0.58.104:3300/0,v1:10.0.58.104:6789/0] mon.host04; crush_location {datacenter=DC2}
    
    4: [v2:10.0.58.38:3300/0,v1:10.0.58.38:6789/0] mon.host01; crush_location {datacenter=DC1}
    
    dumped monmap epoch 8
    0
    Copy to Clipboard Toggle word wrap

  6. ストレッチモードに入ります。

    構文

    ceph mon enable_stretch_mode TIEBREAKER_HOST STRETCH_RULE STRETCH_BUCKET
    Copy to Clipboard Toggle word wrap

    以下の例では、下記の点を前提としています。

    • tiebreaker ノードは host07 として設定されている。
    • ストレッチルールは、xx で作成された stretch_rule である。
    • ストレッチバケットはデータセンターとして設定されている。
[ceph: root@host01 /]# ceph mon enable_stretch_mode host07 stretch_rule datacenter
Copy to Clipboard Toggle word wrap

検証

CROSREF を続行して、ストレッチモードが正しく実装されていることを確認します。

4.3.2.2. ストレッチモードの検証

この情報を使用して、実装された CRUSH ルールを使用してストレッチモードが正しく作成されたことを確認します。

手順

  1. すべてのプールが Ceph クラスターで作成された CRUSH ルールを使用していることを確認します。これらの例では、CRUSH ルールは ストレッチモード用の CRUSH マップの設定 で作成された設定に従って、stretch_rule として設定されています。

    構文

    for pool in $(rados lspools);do echo -n "Pool: ${pool}; ";ceph osd pool get ${pool} crush_rule;done
    Copy to Clipboard Toggle word wrap

    [ceph: root@host01 /]# for pool in $(rados lspools);do echo -n "Pool: ${pool}; ";ceph osd pool get ${pool} crush_rule;done
    Pool: device_health_metrics; crush_rule: stretch_rule
    Pool: cephfs.cephfs.meta; crush_rule: stretch_rule
    Pool: cephfs.cephfs.data; crush_rule: stretch_rule
    Pool: .rgw.root; crush_rule: stretch_rule
    Pool: default.rgw.log; crush_rule: stretch_rule
    Pool: default.rgw.control; crush_rule: stretch_rule
    Pool: default.rgw.meta; crush_rule: stretch_rule
    Pool: rbdpool; crush_rule: stretch_rule
    Copy to Clipboard Toggle word wrap

  2. ストレッチモードが有効になっていることを確認します。stretch_mode_enabledtrue に設定されていることを確認します。

    構文

    ceph osd dump
    Copy to Clipboard Toggle word wrap

    出力には次の情報が含まれます。

    stretch_mode_enabled
    ストレッチモードが有効な場合は true に設定します。
    stretch_bucket_count
    OSD を備えたデータセンターの数。
    degraded_stretch_mode
    デグレードしていない場合は 0 を出力します。ストレッチモードがデグレードしている場合は、アップサイトの数を出力します。
    recovering_stretch_mode
    回復しない場合は 0 を出力します。ストレッチモードが回復中の場合、出力は 1 です。
    stretch_mode_bucket

    各 CRUSH バケットタイプに設定される一意の値。この値は通常、データセンターの場合は 8 に設定されます。

    "stretch_mode": {
                "stretch_mode_enabled": true,
                "stretch_bucket_count": 2,
                "degraded_stretch_mode": 0,
                "recovering_stretch_mode": 1,
                "stretch_mode_bucket": 8
    Copy to Clipboard Toggle word wrap

  3. ceph mon dump を使用して、ストレッチモードが mon マップを使用していることを確認します。

    以下の点を行うようにしてください。

    • stretch_mode_enabled1 に設定されている
    • 正しい mon ホストが tiebreaker_mon として設定されている
    • 正しい mon ホストが disallowed_leaders として設定されている

      構文

      ceph mon dump
      Copy to Clipboard Toggle word wrap

      [ceph: root@host01 /]# ceph mon dump
      epoch 16
      fsid ff19789c-f5c7-11ef-8e1c-fa163e4e1f7e
      last_changed 2025-02-28T12:12:51.089706+0000
      created 2025-02-28T11:34:59.325503+0000
      min_mon_release 19 (squid)
      election_strategy: 3
      stretch_mode_enabled 1
      tiebreaker_mon host07
      disallowed_leaders host07
      0: [v2:10.0.56.37:3300/0,v1:10.0.56.37:6789/0] mon.host01; crush_location {datacenter=DC1}
      1: [v2:10.0.59.188:3300/0,v1:10.0.59.188:6789/0] mon.host05; crush_location {datacenter=DC2}
      2: [v2:10.0.59.35:3300/0,v1:10.0.59.35:6789/0] mon.host02; crush_location {datacenter=DC1}
      3: [v2:10.0.56.189:3300/0,v1:10.0.56.189:6789/0] mon.host07; crush_location {datacenter=DC3}
      4: [v2:10.0.56.13:3300/0,v1:10.0.56.13:6789/0] mon.host04; crush_location {datacenter=DC2}
      dumped monmap epoch 16
      Copy to Clipboard Toggle word wrap

次のステップ

  1. Ceph Object Gateway をデプロイ、設定、管理します。詳細は、Ceph Object Gateway を参照してください。
  2. Ceph ブロックデバイスを管理、作成、設定、および使用します。詳細は、Ceph ブロックデバイス を参照してください。
  3. Ceph File System (CephFS) を作成、マウント、操作します。詳細は、Ceph File Systems を参照してください。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat