Red Hat OpenStack Services on OpenShift への GPU ワークロードのデプロイ


Red Hat OpenStack Services on OpenShift 18.0

Red Hat OpenStack Services on Openshift の仮想アクセラレーション設定

OpenStack Documentation Team

概要

Red Hat OpenStack Services on OpenShift (RHOSO) 上のワークロードに対して仮想 GPU アクセラレーションを設定できます。

Red Hat ドキュメントへのフィードバック (英語のみ)

Red Hat ドキュメントに対するご意見をお聞かせください。ドキュメントの改善点があればお知らせください。

問題の作成 フォームを使用して、Red Hat OpenStack Services on OpenShift (RHOSO) または Red Hat OpenStack Platform (RHOSP) の以前のリリースのドキュメントに関するフィードバックを提供します。RHOSO または RHOSP ドキュメントの問題を作成すると、その問題は RHOSO Jira プロジェクトに記録され、フィードバックの進行状況を追跡できるようになります。

問題の作成 フォームを完了するには、Jira にログインしていることを確認してください。Red Hat Jira アカウントをお持ちでない場合は、https://issues.redhat.com でアカウントを作成できます。

  1. 次のリンクをクリックして、問題の作成 ページを開きます (問題の作成)。
  2. Summary フィールドと Description フィールドに入力します。Description フィールドに、ドキュメントの URL、章またはセクション番号、および問題の詳しい説明を入力します。フォーム内の他のフィールドは変更しないでください。
  3. Create をクリックします。

第1章 GPU ワークロードをデプロイするための RHOSO 設定

データプレーンノードで PCI パススルーを設定することで、クラウドインフラストラクチャーにおける GPU アクセラレーション対応 AI および機械学習のワークロードに対するサポートを有効化します。この設定により、GPU ハードウェアに直接アクセスして Red Hat AI Inference Server などのワークロードをデプロイし、最適なパフォーマンスを実現できます。

デプロイメントには、RHEL AI で AI ワークロードを実行するために必要な仕様が備わっている必要があります。詳細は、RHEL AI ハードウェア要件 を参照してください。

1.1. AI ワークロード用のコントロールプレーンの設定

GPU デバイスを認識し、PCI スケジューリングを有効にするように Nova および Placement サービスを設定します。これにより、GPU 対応ワークロードをサポートするデータプレーンノードをデプロイするためのコントロールプレーンの準備が行われます。

前提条件

  • 必要な PCI デバイスを持つコンピュートノード
  • oc コマンドラインツールがワークステーションにインストールされている。
  • cluster-admin 権限を持つユーザーとして、Red Hat OpenStack Services on OpenShift (RHOSO) にログインしている。

手順

  1. ワークステーションで OpenStackControlPlane カスタムリソース (CR) ファイル openstack_control_plane.yaml を開きます。
  2. spec.nova.template セクションに customServiceConfig フィールドを追加し、次の変更を加えます。

    • コンピュートノード上の GPU の PCI エイリアスを設定します。
    • 必要に応じて、Placement で PCI を有効にして、Placement をリソース追跡の中央サービスとして有効にします。これは、Nova と Placement において元に戻せないステップです。
    • 必要に応じて追加のセルを設定します。

      apiVersion: core.openstack.org/v1beta1
      kind: OpenStackControlPlane
      spec:
        nova:
          apiOverride:
            route: {}
          template:
            secret: osp-secret
            apiServiceTemplate:
              replicas: 3
              customServiceConfig: |
                [pci]
                alias = {"name":"<alias_name>", "vendor_id":"<gpu_vendor_id>", "product_id":"<gpu_product_id>", "device_type":"<type>"}
                [filter_scheduler]
                pci_in_placement = True
            cell0:
              conductorServiceTemplate:
                customServiceConfig: |
                  [filter_scheduler]
                  pci_in_placement = True
            cell1:
              conductorServiceTemplate:
                customServiceConfig: |
                  [filter_scheduler]
                  pci_in_placement = True
            schedulerServiceTemplate:
              customServiceConfig: |
                [filter_scheduler]
                pci_in_placement = True
      Copy to Clipboard Toggle word wrap
      注記

      cell1 以外にもセルがある場合は、pci_in_placement = True 設定で各セルに対応する conductorServiceTemplate 設定を追加します。

    • <alias_name> は、ユーザーが指定したデバイス名 (例: "nvidia") に置き換えます。
    • <gpu_vendor_id> は、GPU のベンダー ID に置き換えます。
    • <gpu_product_id> は、GPU の製品 ID に置き換えます。
    • <type> は、次のいずれかに置き換えます。

      • デバイスが SR-IOV をサポートし、親デバイスまたはルートデバイスである場合は type-PF を使用します。
      • デバイスが SR-IOV をサポートするデバイスの子デバイスである場合は type-VF を使用します。
      • デバイスが SR-IOV をサポートしていない場合は、type-PCI を使用します。

        注記

        PCI デバイスがインストールされているシステムで lspci -nn コマンドを使用して、ベンダー ID とデバイス ID を見つけることができます。

  3. openstack_control_plane.yaml CR ファイルを保存します。
  4. コントロールプレーンを更新します。

    $ oc apply -f openstack_control_plane.yaml -n openstack
    Copy to Clipboard Toggle word wrap
  5. GPU ワークロード用のインスタンスを起動するためのフレーバーを作成します。

    次の例では、nvidia-gpu という名前のフレーバーを作成します。

    $ openstack flavor create --ram <ram> --vcpus <cpus> --disk <size> \
    	--property "pci_passthrough:alias"="<alias_name>:<gpus>" \
    	--property "hw:pci_numa_affinity_policy=preferred" \
    	--property "hw:hide_hypervisor_id"=true nvidia-gpu
    Copy to Clipboard Toggle word wrap
    • <ram> は、このフレーバーに必要なメモリー量 (メガバイト単位) に置き換えます。
    • <cpus> は、このフレーバーに必要な vcpu の数に置き換えます。
    • <size> は、このフレーバーに必要なディスクのサイズ (ギガバイト単位) に置き換えます。
    • <alias_name> は、ユーザーが指定したデバイス名 (例: "nvidia") に置き換えます。
    • <gpus> は、このフレーバーの GPU の数に置き換えます。

      注記
      • pci_passthrough:alias プロパティーは、環境に合わせて調整する必要があります。この例では、nvidia はエイリアス設定値に使用される名前であり、<gpus> は、このフレーバーを使用するインスタンスに与えられた GPU PCI デバイスの数です (例: pci_passthrough:alias"="nvidia:2)。
      • hw:hide_hypervisor_id=true パラメーターは、インスタンスからハイパーバイザー署名を隠匿します。これにより、すべてのドライバーがインスタンスに読み込まれ、動作できるようになります。
      • hw:pci_numa_affinity_policy は、環境に応じて置き換えることができます。詳細は、PCI パススルー用のコントロールプレーンの更新 を参照してください。

1.2. データプレーンノードの設定

GPU パススルー設定とカーネルパラメーターを使用してデータプレーンノードを設定し、直接 GPU アクセスを有効にします。これにより、インスタンスは計算負荷の高いワークロードに GPU ハードウェアを使用できるようになります。

前提条件

  • GPU デバイスに SR-IOV 機能がある場合は、BIOS で SR-IOV が有効になっていることを確認する。
  • デバイスの BIOS で仮想化が有効になっていることを確認する。

    注記

    仮想化と SR-IOV を有効にする手順については、ベンダーのドキュメントを参照してください。ベンダーによって、仮想化機能を指す名前は異なります。たとえば、Intel では VT-d という名前を使用しますが、AMD では AMD-V と呼ばれています。

手順

  1. gpu-extra-config という名前の ConfigMap CR ファイルを作成し、[pci] alias パラメーターの値を設定します。

    apiVersion: v1
    kind: ConfigMap
    metadata:
       name: gpu-extra-config
       namespace: openstack
    data:
       32-nova-pci-alias.conf: |
         [pci]
         pci_in_placement = True
         device_spec = {"vendor_id": "<gpu_vendor_id>", "product_id": "<gpu_product_id>"}
         alias = {"name":"<alias_name>", "vendor_id":"<gpu_vendor_id>", "product_id":"<gpu_product_id>", "device_type":"<type>"}
    Copy to Clipboard Toggle word wrap
    • コントロールプレーンで PCI in Placement が設定されている場合は、pci_in_placementTrue に設定します。
    • <alias_name> は、ユーザーが指定したデバイス名 (例: "nvidia") に置き換えます。
    • <gpu_vendor_id> は、ご使用の環境の GPU ベンダー ID に置き換えます。
    • <gpu_product_id> は、ご使用の環境の GPU 製品 ID に置き換えます。
    • <type> は、次のいずれかに置き換えます。

      • デバイスが SR-IOV をサポートし、親デバイスまたはルートデバイスである場合は type-PF を使用します。
      • デバイスが SR-IOV をサポートするデバイスの子デバイスである場合は type-VF を使用します。
      • デバイスが SR-IOV をサポートしていない場合は、type-PCI を使用します。

        注記

        PCI デバイスがインストールされているシステムで lspci -nn コマンドを使用して、ベンダー ID とデバイス ID を見つけることができます。

  2. ConfigMap リソースを作成します。

    $ oc create -f gpu-extra-config.yaml
    Copy to Clipboard Toggle word wrap
  3. gpu-passthrough-service.yaml という名前のファイルに、gpu-passthrough-<cell_name> という名前の新しい OpenStackDataPlaneService カスタムリソース (CR) を作成します。

    注記

    複数のセルがある場合は、<cell_name> をセル名 (例: cell1cell2) に置き換えて、各セルに個別のサービスを作成します。

    apiVersion: dataplane.openstack.org/v1beta1
    kind: OpenStackDataPlaneService
    metadata:
      name: gpu-passthrough-<cell_name>
    spec:
      playbookContents: |
        - name: Bind vfio-pci to devices
          hosts: all
          tasks:
            - name: Blacklist nouveau and nvidia
              become: true
              ansible.builtin.copy:
                dest: "/etc/modprobe.d/blacklist-nvidia.conf"
                mode: "0644"
                content: |-
                  blacklist nouveau
                  blacklist nvidia
                  options nouveau modeset=0
                force: false
              register: _blacklist_nvidia
    
            - name: Ensure vfio and vfio-pci modules are loaded at boot
              become: true
              ansible.builtin.copy:
                dest: /etc/modules-load.d/vfio.conf
                mode: "0644"
                content: |
                  vfio
                  vfio-pci
                force: false
              register: _load_vfio
    
            - name: Check if grub2-mkconfig has --update-bls-cmdline option
              ansible.builtin.shell:
                cmd: grub2-mkconfig --help | grep '\-\-update-bls-cmdline'
              ignore_errors: true
              register: check_update_bls_cmdline
              changed_when: false
    
            - name: Regenerate initramfs
              become: true
              ansible.builtin.command: "{{ item }}"
              loop:
                - 'dracut --force'
                - >-
                  grub2-mkconfig -o /boot/grub2/grub.cfg
                  {{ '--update-bls-cmdline'
                  if check_update_bls_cmdline.rc == 0
                  else '' }}
              when: (_blacklist_nvidia.changed or _load_vfio.changed)
    
      dataSources:
        - secretRef:
            name: nova-<cell_name>-compute-config
        - secretRef:
            name: nova-migration-ssh-key
        - configMapRef:
            name: gpu-extra-config
    Copy to Clipboard Toggle word wrap
    • <cell_name> は、セル名 (例: cell1) に置き換えます。
  4. gpu-passthrough-service.yaml ファイルから、gpu-passthrough-<cell_name> という名前の新しい OpenStackDataPlaneService を作成します。

    $ oc apply -f gpu-passthrough-service.yaml -n openstack
    Copy to Clipboard Toggle word wrap
  5. デプロイメント内の既存の OpenStackDataPlaneNodeSet をリスト表示します。

    $ oc get OpenStackDataPlaneNodeSet -n openstack
    Copy to Clipboard Toggle word wrap
    注記

    デプロイメントには、openstack-edpm-ipam という名前の OpenStackDataPlaneNodeSet がすでに定義されている必要があります。

  6. 既存の OpenStackDataPlaneNodeSet をバックアップします。

    $ oc get OpenStackDataPlaneNodeSet openstack-edpm-ipam -o yaml > openstack-edpm-ipam.yaml
    Copy to Clipboard Toggle word wrap
  7. OpenStackDataPlaneNodeSet CR ファイルを編集して、既存の spec.servicesgpu-passthrough-<cell_name> サービスを追加します。

    apiVersion: dataplane.openstack.org/v1beta1
    kind: OpenStackDataPlaneNodeSet
    spec:
      ...
      services:
        - redhat
        - bootstrap
        - download-cache
        - configure-network
        - validate-network
        - install-os
        - ceph-hci-pre
        - configure-os
        - ssh-known-hosts
        - run-os
    +   - gpu-passthrough-<cell_name>
        - reboot-os
    Copy to Clipboard Toggle word wrap
    • <cell_name> は、セル名 (例: cell1) に置き換えます。複数のセルがある場合は、対応する各サービス (例: gpu-passthrough-cell1gpu-passthrough-cell2) を追加します。

      注記

      gpu-passthrough-<cell_name> サービスは、reboot-os の上に配置する必要があります。

  8. 同じ OpenStackDataPlaneNodeSet CR ファイルを編集して、ansibleVars に必要な値を追加します。

    apiVersion: dataplane.openstack.org/v1beta1
    kind: OpenStackDataPlaneNodeSet
    spec:
      nodeTemplate:
        ansible:
          ansibleVars:
            ...
            edpm_bootstrap_command: |
              subscription-manager register --username <username> --password <password>
              subscription-manager release --set=9.4
              subscription-manager repos --disable=*
              subscription-manager repos --enable=rhel-9-for-x86_64-baseos-eus-rpms --enable=rhel-9-for-x86_64-appstream-eus-rpms --enable=rhel-9-for-x86_64-highavailability-eus-rpms --enable=fast-datapath-for-rhel-9-x86_64-rpms --enable=rhoso-18.0-for-rhel-9-x86_64-rpms
            edpm_kernel_args: "intel_iommu=on iommu=pt rd.driver.pre=vfio_pci vfio_pci.ids=<gpu_vendor_id>:<gpu_product_id> modules-load=vfio,vfio-pci,vfio_iommu_type1,vfio_pci_vfio_virqfd"
    Copy to Clipboard Toggle word wrap
    • <username> は、Red Hat Subscription Manager のユーザー名に置き換えます。
    • <password> は、Red Hat Subscription Manager のパスワードに置き換えます。
    • <gpu_vendor_id> は、ご使用の環境の GPU ベンダー ID に置き換えます。
    • <gpu_product_id> は、ご使用の環境の GPU 製品 ID に置き換えます。

      注記

      PCI デバイスがインストールされているシステムで lspci -nn コマンドを使用して、ベンダー ID とデバイス ID を見つけることができます。

  9. OpenStackDataPlaneNodeSet CR に変更を適用します。

    oc apply -f openstack-edpm-ipam.yaml
    Copy to Clipboard Toggle word wrap
  10. gpu-passthrough-deployment.yaml という名前のファイルに新しい OpenStackDataPlaneDeployment を作成し、OpenStackDataPlaneNodeSet 内のノード上の gpu-passthrough-<cell_name> OpenStackDataPlaneService からのタスクをすべて実行します。

    apiVersion: dataplane.openstack.org/v1beta1
    kind: OpenStackDataPlaneDeployment
    metadata:
      name: gpu-passthrough-deployment
      namespace: openstack
    spec:
      nodeSets:
      - openstack-edpm-ipam
    Copy to Clipboard Toggle word wrap
  11. OpenStackDataPlaneDeployment の変更を反映してデプロイメントを更新します。

    $ oc apply -f gpu-passthrough-deployment.yaml -n openstack
    Copy to Clipboard Toggle word wrap
  12. デプロイメントのステータスを確認します。

    $ oc get OpenStackDataPlaneDeployment
    
    NAME                     	NODESETS              	STATUS   MESSAGE
    edpm-deployment          	["openstack-edpm-ipam"]   True 	Setup complete
    gpu-passthrough-deployment  ["openstack-edpm-ipam"]   True 	Setup complete
    Copy to Clipboard Toggle word wrap
    注記

    デプロイメントのログを追跡するには、oc logs -l app=openstackansibleee -f --max-log-requests 50 コマンドを使用します。

第2章 Red Hat AI Inference Server のデプロイ

OpenStack インスタンスで Red Hat AI Inference Server を起動して、GPU パススルー設定を確認します。

2.1. OpenStack Glance で RHEL イメージを作成する

GPU 対応インスタンスを起動するために、Image サービス (glance) で RHEL ベースのイメージを準備します。このイメージを使用すると、OpenStack 環境との互換性を維持しながら、GPU アクセラレーション対応ワークロードをデプロイできます。

前提条件

  • 管理者がプロジェクトを作成し、管理者からクラウドにアクセスするための clouds.yaml ファイルが提供されている。
  • python-openstackclient パッケージがインストールされている。

手順

  1. RHEL ダウンロードページ から最新の Red Hat Enterprise Linux 9.x KVM ゲストイメージをダウンロードします。
  2. イメージを作成します。

    $ openstack image create \
    --disk-format qcow2 \
    --container-format bare \
    --file <download_name>.qcow2 \
    <rhel9.x>
    Copy to Clipboard Toggle word wrap
    • <download_name> は、ダウンロードしたイメージの名前に置き換えます。たとえば、"rhel-9.7-x86_64-kvm" です。
    • <rhel9.x> は、ダウンロードしたイメージの名前とバージョン番号に置き換えます。たとえば "rhel9.7" です。

検証

  1. イメージがアップロードされていることを確認します。ステータスには、最初は "importing" と表示され、アップロードが完了すると "active" に変わります。

    $ watch openstack image show -c status -f value <rhel9.x>
    Copy to Clipboard Toggle word wrap
    • <rhel9.x> は、ダウンロードしたイメージの名前とバージョン番号に置き換えます。

2.2. GPU ワークロード用のインスタンスの起動

GPU 対応インスタンスをデプロイし、Red Hat AI Inference Server をインストールして設定を検証します。このデプロイメントでは、インスタンスが物理 GPU デバイスに正常にアクセスできることを確認し、推論サービスが機能していることを実証します。

前提条件

  • GPU ワークロード用の Image サービス (glance) イメージを作成した。
  • GPU ワークロード用のインスタンスを作成するためのフレーバーを使用できる。
  • SSH アクセスを持つ適切なセキュリティーグループがプロビジョニングされており、それを使用できる。

手順

  1. オプション: SSH キーペアがない場合は、GPU ワークロードのインスタンスで使用するために作成します。

    $ openstack keypair create --private-key <private_key_file> <name>
    Copy to Clipboard Toggle word wrap
    • <private_key_file> は、秘密鍵を保存するファイルパスと名前に置き換えます。公開鍵はユーザーアカウントに自動的に保存されます。
    • name は、新しい鍵の名前に置き換えます。
  2. サーバーインスタンスの作成時に環境変数を入力します。

    $ instance_name=rhaiis-inference
    $ image_name=<image_name>
    $ flavor=<flavor_name>
    $ network=<net_name>
    $ public_network=public
    $ security_group=<sg_id>
    $ key_name=<key_pair_name>
    Copy to Clipboard Toggle word wrap
    • <image_name> は、Image サービス (glance) イメージに使用した名前に置き換えます。
    • <flavor_name> は、GPU ワークロードのフレーバーの名前 (例: "nvidia-gpu") に置き換えます。
    • 他のすべてのパラメーターを、環境に固有の名前に置き換えます。
  3. 作成した変数を使用してインスタンスを作成します。

    $ openstack server create --image ${image_name} --flavor ${flavor} \
        --nic net-id=${network} --security-group ${security_group} \
        --key-name ${key_name} ${instance_name} --wait
    Copy to Clipboard Toggle word wrap
  4. インスタンスの Floating IP を作成します。

    $ fip=$(openstack floating ip create ${public_network} -f value -c floating_ip_address)
    Copy to Clipboard Toggle word wrap
  5. Floating IP をインスタンスにリンクします。

    $ openstack server add floating ip ${instance_name} ${fip}
    Copy to Clipboard Toggle word wrap
    注記

    RHEL イメージのデフォルトのユーザーアカウントは cloud-user で、これはパスワードなしの sudo 特権を持つユーザーです。

  6. インスタンスにログインします。

    1. SSH を使用してインスタンスに接続します。

      $ ssh -i <private_key> cloud-user@${fip}
      Copy to Clipboard Toggle word wrap
      • <private_key> は、作成した秘密鍵ファイルに置き換えます。
  7. RHEL インスタンスを登録します。

    $ sudo rhc connect --organization <org> --activation-key <key>
    Copy to Clipboard Toggle word wrap
    • <org> は、ユーザー自身の組織に置き換えます。
    • <key> は、ユーザー自身の Red Hat アクティベーションキーに置き換えます。
  8. 適切なドライバーと Container Toolkit をインストールします。

  9. podman をインストールします。

    $ sudo dnf install podman
    Copy to Clipboard Toggle word wrap
  10. Red Hat コンテナーレジストリーにログインします。

    $ podman login registry.redhat.io
    Copy to Clipboard Toggle word wrap
  11. 作成したインスタンスで、podman を使用して Red Hat AI Inference Server をデプロイします。

    $ mkdir ./rhaiis-cache
    
    $ podman run --device <device> \
      --security-opt=label=disable \
      --shm-size=4g -p 8000:8000 \
      --env "HF_HUB_OFFLINE=0" \
      --env=VLLM_NO_USAGE_STATS=1 \
      -v ./rhaiis-cache:/opt/app-root/src/cache:Z \
      registry.redhat.io/rhaiis/vllm-cuda-rhel9:3.0.0 \
      --model RedHatAI/Llama-3.2-1B-Instruct-FP8 \
      --tensor-parallel-size <size>
    Copy to Clipboard Toggle word wrap
    • NVIDIA を使用している場合は、<device>nvidia.com/gpu=all に置き換えます。AMD を使用している場合は、--device /dev/kdf --device /dev/dri を使用します。
    • AI 推論サーバーコンテナーを複数の GPU で実行する場合は、<size> を GPU の数に置き換えます。

検証

  1. RHEL インスタンス内で GPU デバイスが使用可能であることを確認します。

    NVIDIA
    nvidia-smi -L
    AMD

    /opt/rocm/bin/rocm-smi

    出力例

    GPU 0: NVIDIA A100-PCIE-40GB (UUID: GPU-4b9f8464-ad90-cdde-8510-8006fc2772b7)
    GPU 1: NVIDIA A100-PCIE-40GB (UUID: GPU-7a2e3526-44f0-4d2f-7283-6114a8b82a32)
    Copy to Clipboard Toggle word wrap
  2. API を使用してモデルにリクエストを送信します。

    $ curl -X POST -H "Content-Type: application/json" -d '{
        "prompt": "What is the capital of France?",
        "max_tokens": 50
    }' http://<floating_ip>:8000/v1/completions | jq
    Copy to Clipboard Toggle word wrap
    • <floating_ip> は、前のステップで取得したインスタンスのアドレスに置き換えます。

      出力例

      {
          "id": "cmpl-b84aeda1d5a4485c9cb9ed4a13072fca",
          "object": "text_completion",
          "created": 1746555421,
          "model": "RedHatAI/Llama-3.2-1B-Instruct-FP8",
          "choices": [
              {
                  "index": 0,
                  "text": " Paris.\nThe capital of France is Paris.",
                  "logprobs": null,
                  "finish_reason": "stop",
                  "stop_reason": null,
                  "prompt_logprobs": null
              }
          ],
          "usage": {
              "prompt_tokens": 8,
              "total_tokens": 18,
              "completion_tokens": 10,
              "prompt_tokens_details": null
          }
      Copy to Clipboard Toggle word wrap

法律上の通知

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat