인스턴스 생성 및 관리
CLI를 사용하여 인스턴스 생성 및 관리
OpenStack Documentation Team
rhos-docs@redhat.com초록
머리말
인스턴스를 생성하는 동안에는 RBAC(역할 기반 액세스 제어)-공유 보안 그룹을 인스턴스에 직접 적용할 수 없습니다. RBAC-shared 보안 그룹을 인스턴스에 적용하려면 먼저 포트를 생성하고, 공유 보안 그룹을 해당 포트에 적용한 다음 해당 포트를 인스턴스에 할당해야 합니다. 포트에 보안 그룹 추가를 참조하십시오.
보다 포괄적 수용을 위한 오픈 소스 용어 교체
Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 용어를 교체하기 위해 최선을 다하고 있습니다. 먼저 마스터(master), 슬레이브(slave), 블랙리스트(blacklist), 화이트리스트(whitelist) 등 네 가지 용어를 교체하고 있습니다. 이러한 변경 작업은 작업 범위가 크므로 향후 여러 릴리스에 걸쳐 점차 구현할 예정입니다. 자세한 내용은 CTO Chris Wright의 메시지를 참조하십시오.
Red Hat 문서에 관한 피드백 제공
문서 개선을 위한 의견을 보내 주십시오. 우리가 어떻게 그것을 더 잘 만들 수 있는지 알려주십시오.
Direct Documentation feedback(DDF) 함수 사용
특정 문장, 단락 또는 코드 블록에 대한 직접 코멘트를 위해서는 DDF 함수 추가 를 사용하십시오.
- Multi-page HTML 형식으로 설명서를 확인합니다.
- 문서의 오른쪽 위에 사용자 지정 단추가 표시되는지 확인합니다.Ensure that you see the Feedback button in the upper right corner of the document.
- 주석하려는 텍스트 부분을 강조 표시합니다.
- 피드백 추가를 클릭합니다.
- 코멘트와 함께 피드백 추가 필드를 완료합니다.
- 선택 사항: 문서 팀에서 문제 해결을 위해 연락할 수 있도록 이메일 주소를 추가하십시오.
- 제출을 클릭합니다.
1장. 인스턴스 정보
인스턴스는 클라우드 내부의 물리적 컴퓨팅 노드에서 실행되는 개별 가상 머신입니다. 인스턴스를 시작하려면 플레이버와 이미지 또는 부팅 가능한 볼륨이 필요합니다. 이미지를 사용하여 인스턴스를 시작하면 제공된 이미지가 부팅 가능한 운영 체제와 함께 설치된 가상 디스크를 포함하는 기본 이미지가 됩니다. 각 인스턴스에는 인스턴스 디스크라고 하는 루트 디스크가 필요합니다. Compute 서비스(nova)는 인스턴스에 지정한 플레이버의 사양과 일치하도록 인스턴스 디스크의 크기를 조정합니다.
이미지는 Image 서비스(glance)에서 관리합니다. 이미지 서비스 이미지 저장소에는 사전 정의된 여러 이미지가 포함되어 있습니다. 컴퓨팅 노드는 인스턴스에 사용 가능한 vCPU, 메모리 및 로컬 디스크 리소스를 제공합니다. Block Storage 서비스(cinder)는 사전 정의된 볼륨을 제공합니다. 인스턴스 디스크 데이터는 인스턴스를 삭제할 때 삭제되거나 블록 스토리지 서비스에서 제공하는 영구 볼륨에 저장됩니다.
계산 서비스는 필요에 따라 인스턴스를 제공하는 중앙 구성 요소입니다. 계산 서비스는 인스턴스를 생성, 예약, 관리하고 인증을 위한 ID 서비스, 인스턴스를 시작하는 데 사용되는 이미지의 이미지 서비스, 사용자 및 관리 인터페이스에 대한 대시보드 서비스(horizon)와 상호 작용합니다. 클라우드 사용자는 인스턴스를 생성하고 관리할 때 Compute 서비스와 상호 작용합니다. OpenStack CLI 또는 대시보드를 사용하여 인스턴스를 생성하고 관리할 수 있습니다.
2장. 인스턴스 부팅 소스
인스턴스의 부팅 소스는 이미지 또는 부팅 가능한 볼륨일 수 있습니다. 이미지에서 부팅한 인스턴스의 인스턴스 디스크는 Compute 서비스에서 제어하고 인스턴스가 삭제될 때 삭제됩니다. 볼륨에서 부팅한 인스턴스의 인스턴스 디스크는 블록 스토리지 서비스에 의해 제어되며 원격으로 저장됩니다.
이미지에는 부팅 가능한 운영 체제가 포함되어 있습니다. Image 서비스(glance)는 이미지 스토리지 및 관리를 제어합니다. 동일한 기본 이미지에서 여러 인스턴스를 시작할 수 있습니다. 각 인스턴스는 기본 이미지의 사본에서 실행됩니다. 인스턴스에 대한 변경 사항은 기본 이미지에 영향을 미치지 않습니다.
부팅 가능한 볼륨은 부팅 가능한 운영 체제를 포함하는 이미지에서 생성된 블록 스토리지 볼륨입니다. 인스턴스는 인스턴스가 삭제될 때 인스턴스 데이터를 유지하기 위해 부팅 가능한 볼륨을 사용할 수 있습니다. 인스턴스를 시작할 때 기존 영구 루트 볼륨을 사용할 수 있습니다. 인스턴스를 삭제할 때 인스턴스 데이터를 저장할 수 있도록 이미지에서 인스턴스를 시작할 때 영구 스토리지를 생성할 수도 있습니다. 볼륨 스냅샷에서 인스턴스를 생성할 때 새 영구 스토리지 볼륨이 자동으로 생성됩니다.
다음 다이어그램에서는 인스턴스를 시작할 때 생성할 수 있는 인스턴스 디스크 및 스토리지를 보여줍니다. 생성된 실제 인스턴스 디스크 및 스토리지는 사용된 부팅 소스 및 플레이버에 따라 다릅니다.
3장. 인스턴스 스토리지 유형
인스턴스에 사용할 수 있는 가상 스토리지는 인스턴스를 시작하는 데 사용되는 플레이버에서 정의합니다. 다음 가상 스토리지 리소스는 인스턴스와 연결할 수 있습니다.
- 인스턴스 디스크
- 임시 스토리지
- 스왑 스토리지
- 영구 블록 스토리지 볼륨
- 구성 드라이브
3.1. 인스턴스 디스크
인스턴스 데이터를 저장하기 위해 생성된 인스턴스 디스크는 인스턴스를 생성하는 데 사용하는 부팅 소스에 따라 다릅니다. 이미지에서 부팅한 인스턴스의 인스턴스 디스크는 Compute 서비스에서 제어하고 인스턴스가 삭제될 때 삭제됩니다. 볼륨에서 부팅한 인스턴스의 인스턴스 디스크는 블록 스토리지 서비스에서 제공하는 영구 볼륨입니다.
3.2. 인스턴스 임시 스토리지
임시 디스크를 구성하는 플레이버를 선택하여 인스턴스에 임시 디스크가 생성되도록 지정할 수 있습니다. 이 임시 스토리지는 인스턴스에서 사용할 수 있는 빈 추가 디스크입니다. 이 스토리지 값은 instance 플레이버에서 정의합니다. 기본값은 0이므로 보조 임시 스토리지가 생성되지 않습니다.
임시 디스크는 plugged-in 하드 드라이브 또는 지문 드라이브와 동일한 방식으로 나타납니다. lsblk 명령을 사용하여 확인할 수 있는 블록 장치로 사용할 수 있습니다. 마운트하여 사용할 수 있지만 일반적으로 블록 장치를 사용합니다. 연결된 인스턴스 이외에 해당 디스크를 보존하거나 참조할 수 없습니다.
임시 스토리지 데이터는 인스턴스 스냅샷에 포함되지 않으며, 보류된 인스턴스에서 사용 불가능합니다.
3.3. 인스턴스 스왑 스토리지
스왑 디스크를 구성하는 플레이버를 선택하여 인스턴스에 스왑 디스크가 생성되도록 지정할 수 있습니다. 이 스왑 스토리지는 실행 중인 운영 체제의 스왑 공간으로 사용할 수 있는 추가 디스크입니다.
3.4. 인스턴스 블록 스토리지
블록 스토리지 볼륨은 실행 중인 인스턴스의 상태와 관계없이 인스턴스에 사용할 수 있는 영구 스토리지입니다. 여러 블록 장치를 인스턴스에 연결할 수 있으며 그 중 하나는 부팅 가능한 볼륨일 수 있습니다.
인스턴스 디스크 데이터에 블록 스토리지 볼륨을 사용하면 새 볼륨이 생성되도록 요청하는 새 이미지로 인스턴스를 다시 빌드하는 경우에도 인스턴스를 다시 빌드하기 위해 블록 스토리지 볼륨이 지속됩니다.
3.5. 구성 드라이브
부팅 시 구성 드라이브를 인스턴스에 연결할 수 있습니다. 구성 드라이브는 읽기 전용 드라이브로 인스턴스에 제공됩니다. 인스턴스에서 이 드라이브를 마운트하고 해당 드라이브에서 파일을 읽을 수 있습니다. 구성 드라이브를 cloud-init 정보의 소스로 사용할 수 있습니다. 구성 드라이브는 서버 부트스트랩에 cloud-init 와 결합할 때 유용하며 큰 파일을 인스턴스에 전달하려는 경우 유용합니다. 예를 들어 config 드라이브를 자동으로 마운트하고 초기 인스턴스 부팅 중에 설정 스크립트를 실행하도록 cloud-init 를 구성할 수 있습니다. 구성 드라이브는 config-2 의 볼륨 레이블을 사용하여 생성되고 부팅 시 인스턴스에 연결됩니다. 구성 드라이브에 전달된 추가 파일의 내용은 구성 드라이브의 openstack/{version}/ 디렉터리의 user_data 파일에 추가됩니다. cloud-init 는 이 파일에서 사용자 데이터를 검색합니다.
4장. 인스턴스의 플레이버
인스턴스 플레이버는 인스턴스의 가상 하드웨어 프로필을 지정하는 리소스 템플릿입니다. 인스턴스를 시작할 때 플레이버를 선택하여 인스턴스에 할당할 가상 리소스를 지정합니다. 플레이버는 가상 CPU 수, RAM 크기, 루트 디스크의 크기, 보조 임시 스토리지 및 스왑 디스크를 포함한 가상 스토리지의 크기를 정의하여 인스턴스를 만듭니다. 클라우드 내 프로젝트에 정의된 사용 가능한 플레이버 세트에서 플레이버를 선택합니다.
5장. 인스턴스 생성
인스턴스를 생성하려면 플레이버, 부팅 소스, 네트워크, 키 쌍 및 보안 그룹과 같은 기타 RHOSP(Red Hat OpenStack Platform) 구성 요소를 사용할 수 있어야 합니다. 이러한 구성 요소는 인스턴스 생성에 사용되며 기본적으로 사용할 수 없습니다.
인스턴스를 생성할 때 인스턴스에 필요한 부팅 가능한 운영 체제가 있는 부팅 소스, 인스턴스에 필요한 하드웨어 프로필, 인스턴스를 연결하는 네트워크, 데이터 볼륨 및 임시 스토리지와 같은 추가 스토리지를 선택합니다.
5.1. 사전 요구 사항
필요한 이미지 또는 볼륨을 부팅 소스로 사용할 수 있습니다.
- 이미지 생성 방법에 대한 자세한 내용은 이미지 생성 및 관리에서 이미지 생성을 참조하십시오.
- 볼륨 생성 방법에 대한 자세한 내용은 스토리지 가이드의 블록 스토리지 볼륨 생성 을 참조하십시오.
- 인스턴스의 부팅 소스에 사용 가능한 옵션에 대한 자세한 내용은 인스턴스 부팅 소스를 참조하십시오.
- 필요한 CPU, 메모리 및 스토리지 용량 수를 지정하는 플레이버를 사용할 수 있습니다. 플레이버 설정은 선택한 이미지에서 지정한 디스크 및 메모리 크기에 대한 최소 요구 사항을 충족해야 합니다. 그렇지 않으면 인스턴스가 시작되지 않습니다.
- 필요한 네트워크를 사용할 수 있습니다. 네트워크를 만드는 방법에 대한 자세한 내용은 네트워킹 가이드의 네트워크 생성 을 참조하십시오.
5.2. 이미지에서 인스턴스 생성
부팅 소스로 이미지를 사용하여 인스턴스를 생성할 수 있습니다.
절차
인스턴스에 필요한 하드웨어 프로필이 있는 플레이버의 이름 또는 ID를 검색합니다.
$ openstack flavor list
참고이미지가 성공적으로 부팅될 수 있도록 크기가 충분한 플레이버를 선택합니다. 그러지 않으면 인스턴스가 시작되지 않습니다.
인스턴스에 필요한 소프트웨어 프로필이 있는 이미지의 이름 또는 ID를 검색합니다.
$ openstack image list
필요한 이미지를 사용할 수 없는 경우 새 이미지를 다운로드하거나 생성할 수 있습니다. 클라우드 이미지를 생성하거나 다운로드하는 방법에 대한 자세한 내용은 이미지 생성 을 참조하십시오.
참고인스턴스에 26개 이상의 볼륨을 연결해야 하는 경우 인스턴스를 생성하는 데 사용하는 이미지에 다음 속성이 있어야 합니다.
-
hw_scsi_model=virtio-scsi -
hw_disk_bus=scsi
-
인스턴스를 연결할 네트워크의 이름 또는 ID를 검색합니다.
$ openstack network list
인스턴스를 생성합니다.
$ openstack server create --flavor <flavor> \ --image <image> --network <network> \ --wait myInstanceFromImage
-
<flavor>를 1단계에서 검색한 플레이버의 이름 또는 ID로 바꿉니다. -
<image>를 2단계에서 검색한 이미지의 이름 또는 ID로 바꿉니다. -
<network>를 3단계에서 검색한 네트워크의 이름 또는 ID로 바꿉니다. 필요에 따라--network옵션을 두 번 이상 사용하여 인스턴스를 여러 네트워크에 연결할 수 있습니다.
-
5.3. 부팅 가능한 볼륨에서 인스턴스 생성
부팅 소스로 부팅 가능한 볼륨을 사용하여 인스턴스를 생성할 수 있습니다. 장애가 발생할 경우 인스턴스 데이터의 가용성을 개선해야 하는 경우 볼륨에서 인스턴스를 부팅합니다.
인스턴스 디스크 데이터에 블록 스토리지 볼륨을 사용하면 새 볼륨이 생성되도록 요청하는 새 이미지로 인스턴스를 다시 빌드하는 경우에도 인스턴스를 다시 빌드하기 위해 블록 스토리지 볼륨이 지속됩니다.
절차
인스턴스에 필요한 소프트웨어 프로필이 있는 이미지의 이름 또는 ID를 검색합니다.
$ openstack image list
필요한 이미지를 사용할 수 없는 경우 새 이미지를 다운로드하거나 생성할 수 있습니다. 클라우드 이미지를 생성하거나 다운로드하는 방법에 대한 자세한 내용은 이미지 생성 을 참조하십시오.
참고인스턴스에 26개 이상의 볼륨을 연결해야 하는 경우 인스턴스를 생성하는 데 사용하는 이미지에 다음 속성이 있어야 합니다.
-
hw_scsi_model=virtio-scsi -
hw_disk_bus=scsi
-
이미지에서 부팅 가능한 볼륨을 생성합니다.
$ openstack volume create --image <image> \ --size <size_gb> --bootable myBootableVolume
-
<image>를 1단계에서 검색한 볼륨의 이름 또는 ID로 바꿉니다. -
<size_gb>를 볼륨 크기(GB)로 바꿉니다.
-
인스턴스에 필요한 하드웨어 프로필이 있는 플레이버의 이름 또는 ID를 검색합니다.
$ openstack flavor list
인스턴스를 연결할 네트워크의 이름 또는 ID를 검색합니다.
$ openstack network list
부팅 가능한 볼륨을 사용하여 인스턴스를 생성합니다.
$ openstack server create --flavor <flavor> \ --volume myBootableVolume --network <network> \ --wait myInstanceFromVolume
-
<flavor>를 3단계에서 검색한 플레이버의 이름 또는 ID로 바꿉니다. -
<network>를 4단계에서 검색한 네트워크의 이름 또는 ID로 바꿉니다. 필요에 따라--network옵션을 두 번 이상 사용하여 인스턴스를 여러 네트워크에 연결할 수 있습니다.
-
5.4. SR-IOV 네트워크 인터페이스를 사용하여 인스턴스 생성
SR-IOV(단일 루트 I/O 가상화) 네트워크 인터페이스를 사용하여 인스턴스를 생성하려면 필요한 SR-IOV 포트를 생성해야 합니다.
절차
인스턴스에 필요한 하드웨어 프로필이 있는 플레이버의 이름 또는 ID를 검색합니다.
$ openstack flavor list
참고이미지가 성공적으로 부팅될 수 있도록 크기가 충분한 플레이버를 선택합니다. 그러지 않으면 인스턴스가 시작되지 않습니다.
작은 정보필요한 정책이 있는 플레이버를 선택하여 PCI 패스스루 장치 및 SR-IOV 인터페이스의 인스턴스에 적용되는 NUMA 선호도 정책을 지정할 수 있습니다. 사용 가능한 정책에 대한 자세한 내용은 Configuring the Compute Service for Instance Creation 가이드의 Flavor 메타데이터 의 인스턴스 PCI NUMA 선호도 정책 을 참조하십시오. NUMA 선호도 정책이 있는 플레이버를 선택하는 경우 사용하는 이미지에 동일한 NUMA 선호도 정책 또는 NUMA 선호도 정책이 없어야 합니다.
인스턴스에 필요한 소프트웨어 프로필이 있는 이미지의 이름 또는 ID를 검색합니다.
$ openstack image list
필요한 이미지를 사용할 수 없는 경우 새 이미지를 다운로드하거나 생성할 수 있습니다. 클라우드 이미지를 생성하거나 다운로드하는 방법에 대한 자세한 내용은 이미지 생성 을 참조하십시오.
작은 정보필요한 정책이 있는 이미지를 선택하여 PCI 패스스루 장치 및 SR-IOV 인터페이스의 인스턴스에 적용되는 NUMA 선호도 정책을 지정할 수 있습니다. 사용 가능한 정책에 대한 자세한 내용은 Configuring the Compute Service for Instance Creation 가이드의 Flavor 메타데이터 의 인스턴스 PCI NUMA 선호도 정책 을 참조하십시오. NUMA 선호도 정책이 있는 이미지를 선택하는 경우 사용하는 플레이버에 동일한 NUMA 선호도 정책 또는 NUMA 선호도 정책이 없어야 합니다.
인스턴스를 연결할 네트워크의 이름 또는 ID를 검색합니다.
$ openstack network list
SR-IOV 인터페이스에 필요한 포트 유형을 생성합니다.
$ openstack port create --network <network> \ --vnic-type <vnic_type> mySriovPort
-
<network>를 3단계에서 검색한 네트워크의 이름 또는 ID로 바꿉니다. <vnic_type>을 다음 값 중 하나로 바꿉니다.-
직접: 직접 모드 SR-IOV VF(가상 기능) 포트를 생성합니다. -
direct-physical: 직접 모드 SR-IOV 물리적 기능(PF) 포트를 생성합니다. -
macvtap: MacVTap을 사용하여 virtio 인터페이스를 인스턴스에 노출하는 간접 모드 SR-IOV VF 포트를 생성합니다.
-
-
인스턴스를 생성합니다.
$ openstack server create --flavor <flavor> \ --image <image> --port <port> \ --wait mySriovInstance
-
<flavor>를 1단계에서 검색한 플레이버의 이름 또는 ID로 바꿉니다. -
<image>를 2단계에서 검색한 이미지의 이름 또는 ID로 바꿉니다. -
<port>를 4단계에서 생성한 포트의 이름 또는 ID로 바꿉니다.
-
5.5. 포트에서 NUMA 선호도로 인스턴스 생성
포트에서 NUMA 선호도를 사용하여 인스턴스를 생성하려면 필수 NUMA 선호도 정책으로 포트를 생성한 다음 인스턴스를 생성할 때 포트를 지정합니다.
포트 NUMA 선호도 정책은 플레이버, 이미지 및 PCI NUMA 선호도 정책보다 우선 순위가 높습니다. 클라우드 Operator는 각 PCI 패스스루 장치에 대한 기본 NUMA 선호도 정책을 설정할 수 있습니다. 인스턴스 플레이버, 이미지 또는 포트를 사용하여 인스턴스에 적용된 기본 NUMA 선호도 정책을 덮어쓸 수 있습니다.
사전 요구 사항
-
클라우드 플랫폼에서
port-numa-affinity-policy확장을 활성화해야 합니다. - 서비스 플러그인은 Networking 서비스(neutron)에서 구성해야 합니다.
절차
필요한 NUMA 선호도 정책으로 포트를 생성합니다.
$ openstack port create --network <network> \ [--numa-policy-required | --numa-policy-preferred | --numa-policy-legacy] \ myNUMAAffinityPort
-
인스턴스를 연결할
테넌트 네트워크의 이름 또는 ID로 <network>를 바꿉니다. 다음 옵션 중 하나를 사용하여 포트에 적용할 NUMA 선호도 정책을 지정합니다.
-
--NUMA-policy-required- 이 포트를 예약하는 데 필요한 NUMA 선호도 정책 -
--NUMA-policy-preferred- 이 포트를 예약하는 데 사용하는 NUMA 선호도 정책입니다. -
--NUMA-policy-legacy- 레거시 모드를 사용하여 이 포트를 예약합니다.
-
-
인스턴스를 연결할
인스턴스를 생성합니다.
$ openstack server create --flavor <flavor> \ --image <image> --port <port> \ --wait myNUMAAffinityInstance
-
&
lt;flavor>를 인스턴스에 필요한 하드웨어 프로필이 있는 플레이버의 이름 또는 ID로 바꿉니다. -
&
lt;image>를 인스턴스에 필요한 소프트웨어 프로필이 있는 이미지의 이름 또는 ID로 바꿉니다. -
&
lt;port>를 1단계에서 생성한 포트의 이름 또는 ID로 바꿉니다.
-
&
5.6. 추가 리소스
6장. 최소 대역폭 QoS를 사용하여 인스턴스 생성
QoS(Quality of Service) 정책을 사용하여 최소 대역폭을 요청하는 인스턴스를 생성할 수 있습니다.
최소 대역폭 규칙이 보장된 QoS 정책은 특정 물리적 네트워크의 포트에 할당됩니다. 구성된 포트를 사용하는 인스턴스를 생성하면 Compute 스케줄링 서비스에서 이 요청을 충족하는 인스턴스에 대한 호스트를 선택합니다. Compute 스케줄링 서비스는 인스턴스를 배포할 호스트를 선택하기 전에 배치 서비스에서 각 물리 인터페이스의 다른 인스턴스에서 예약한 대역폭의 양을 확인합니다.
제한/제한
- 새 인스턴스를 생성할 때만 보장된 최소 대역폭 QoS 정책을 할당할 수 있습니다. Compute 서비스에서 생성 또는 이동 작업 중에 인스턴스에 대한 리소스 사용량만 업데이트하므로 보장된 최소 대역폭 QoS 정책을 할당할 수 없으므로 인스턴스에 사용할 수 있는 최소 대역폭을 보장할 수 없습니다.
보장된 최소 대역폭 QoS 정책과 같이 리소스 요청이 있는 포트를 사용하는 인스턴스를 실시간 마이그레이션할 수 없습니다. 다음 명령을 실행하여 포트에 리소스 요청이 있는지 확인합니다.
$ openstack port show <port_name/port_id>
사전 요구 사항
- 최소 대역폭 규칙이 있는 QoS 정책을 사용할 수 있습니다. 자세한 내용은 네트워킹 가이드의 QoS (Quality of Service) 정책 구성 을 참조하십시오.
절차
사용 가능한 QoS 정책을 나열합니다.
(overcloud)$ openstack network qos policy list
----------------------------------------------------------------+ | ID | Name | Shared | Default | Project |----------------------------------------------------------------+ | 6d771447-3cf4-4ef1-b613-945e990fa59f | policy2 | True | False | ba4de51bf7694228a350dd22b7a3dc24 | | 78a24462-e3c1-4e66-a042-71131a7daed5 | policy1 | True | False | ba4de51bf7694228a350dd22b7a3dc24 | | b80acc64-4fc2-41f2-a346-520d7cfe0e2b | policy0 | True | False | ba4de51bf7694228a350dd22b7a3dc24 |----------------------------------------------------------------+사용 가능한 각 정책의 규칙을 확인하여 필요한 최소 대역폭이 있는지 확인합니다.
(overcloud)$ openstack network qos policy show policy0
----------------------------------------------------------------------------------------------------+ | Field | Value |----------------------------------------------------------------------------------------------------+ | description | | | id | b80acc64-4fc2-41f2-a346-520d7cfe0e2b | | is_default | False | | location | cloud=', project.domain_id=, project.domain_name='Default, project.id=ba4de51bf7694228a350dd22b7a3dc24, project.name=admin, region_name=regionOne, zone= | | name | policy0 | | project_id | ba4de51bf7694228a350dd22b7a3dc24 | | rules | [{min_kbps: 100000, direction: egress, id: d46218fe-9218-4e96-952b-9f45a5cb3b3c, qos_policy_id: b80acc64-4fc2-41f2-a346-520d7cfe0e2b, type: minimum_bandwidth}, {min_kbps: 100000, direction: ingress, id: 1202c4e3-a03a-464c-80d5-0bf90bb74c9d, qos_policy_id: b80acc64-4fc2-41f2-a346-520d7cfe0e2b, type: minimum_bandwidth}] | | shared | True | | tags | [] |----------------------------------------------------------------------------------------------------+적절한 정책에서 포트를 생성합니다.
(overcloud)$ openstack port create port-normal-qos --network net0 --qos-policy policy0
사용할 NIC 포트를 지정하여 인스턴스를 생성합니다.
$ openstack server create --flavor cirros256 --image cirros-0.3.5-x86_64-disk --nic port-id=port-normal-qos --wait qos_instance
출력의 "ACTIVE" 상태는 요청된 최소 대역폭을 제공할 수 있는 호스트에서 인스턴스를 성공적으로 생성했음을 나타냅니다.
6.1. 인스턴스에서 최소 대역폭 QoS 제거
보장된 최소 대역폭 QoS 정책 제한을 인스턴스에서 들어 올리려면 인터페이스를 분리할 수 있습니다.
절차
인터페이스를 분리하려면 다음 명령을 입력합니다.
$ openstack server remove port <vm_name|vm_id> <port_name|port_id>
7장. VDPA 인터페이스로 인스턴스 생성
이 기능은 이번 릴리스에서 기술 프리뷰로 제공되므로 Red Hat에서 완전히 지원되지 않습니다. 테스트 용도로만 사용해야 하며 프로덕션 환경에 배포해서는 안 됩니다. 기술 프리뷰 기능에 대한 자세한 내용은 적용 범위 상세 정보를 참조하십시오.
vNIC 유형이 VDPA인 인스턴스의 포트를 요청하여 VDPA 인터페이스로 인스턴스를 생성할 수 있습니다.
제한 사항
- VDPA 인터페이스가 있는 인스턴스를 일시 중단, 실시간 마이그레이션, 보류 또는 비울 수 없습니다.
- VDPA 인터페이스를 인스턴스에서 분리한 다음 인스턴스에 다시 연결할 수 없습니다.
절차
물리적 네트워크에 매핑되는 네트워크를 만듭니다.
$ openstack network create vdpa_network \ --provider-physical-network tenant \ --provider-network-type vlan \ --provider-segment 1337
네트워크의 서브넷을 생성합니다.
$ openstack subnet create vdpa_subnet \ --network vdpa_net1 \ --subnet-range 192.0.2.0/24 \ --dhcp
VDPA 지원 NIC에서 포트를 생성합니다.
$ openstack port create vdpa_direct_port \ --network vdpa_network \ --vnic-type vdpa \
사용할 NIC 포트를 지정하여 인스턴스를 생성합니다.
$ openstack server create vdpa_instance \ --flavor cirros256 --image cirros-0.3.5-x86_64-disk \ --nic port-id=vdpa_direct_port --wait
출력의 "ACTIVE" 상태는 요청된 VDPA 인터페이스를 제공할 수 있는 호스트에 인스턴스를 성공적으로 생성했음을 나타냅니다.
8장. 인스턴스 업데이트
영구 볼륨 스토리지, 네트워크 인터페이스 또는 공용 IP 주소와 같은 실행 중인 인스턴스에서 추가 리소스를 추가하고 제거할 수 있습니다. 인스턴스 메타데이터 및 인스턴스가 속하는 보안 그룹을 업데이트할 수도 있습니다.
8.1. 인스턴스에 네트워크 연결
실행 중인 인스턴스에 네트워크를 연결할 수 있습니다. 네트워크를 인스턴스에 연결하면 Compute 서비스에서 인스턴스의 네트워크에 포트를 생성합니다. 기본 보안 그룹을 사용하려는 경우 네트워크에 네트워크 인터페이스를 인스턴스에 연결하고 네트워크에는 하나의 서브넷만 있습니다.
절차
사용 가능한 네트워크를 식별하고 인스턴스에 연결할 네트워크의 이름 또는 ID를 기록해 둡니다.
(overcloud)$ openstack network list
필요한 네트워크를 사용할 수 없는 경우 새 네트워크를 만듭니다.
(overcloud)$ openstack network create <network>
인스턴스에 네트워크를 연결합니다.
$ openstack server add network <instance> <network>
-
<instance>를 네트워크를 연결할 인스턴스의 이름 또는 ID로 바꿉니다. -
<network>를 인스턴스에 연결할 네트워크의 이름 또는 ID로 바꿉니다.
-
추가 리소스
- 명령줄 인터페이스 참조의 OpenStack network create 명령 을 만듭니다.
- 네트워킹 가이드에서 네트워크 생성.
8.2. 인스턴스에서 네트워크 분리
인스턴스에서 네트워크를 분리할 수 있습니다.
네트워크를 분리하여 모든 네트워크 포트를 분리합니다. 인스턴스에 네트워크에 포트가 여러 개 있고 해당 포트 중 하나만 분리하려면 인스턴스 프로세스에서 포트 분리를 수행하여 포트를 분리합니다.
절차
인스턴스에 연결된 네트워크를 확인합니다.
(overcloud)$ openstack server show <instance>
인스턴스에서 네트워크를 분리합니다.
$ openstack server remove network <instance> <network>
-
<instance>를 네트워크를 제거할 인스턴스의 이름 또는 ID로 바꿉니다. -
<network>를 인스턴스에서 제거할 네트워크의 이름 또는 ID로 바꿉니다.
-
8.3. 인스턴스에 포트 연결
포트를 사용하여 실행 중인 인스턴스에 네트워크 인터페이스를 연결할 수 있습니다. 한 번에 하나의 인스턴스에만 포트를 연결할 수 있습니다. 사용자 지정 보안 그룹을 사용하거나 네트워크에 여러 서브넷이 있는 경우 포트를 사용하여 인스턴스에 네트워크 인터페이스를 연결합니다.
네트워크를 사용하여 네트워크 인터페이스를 연결하면 포트가 자동으로 생성됩니다. 자세한 내용은 인스턴스에 네트워크 연결을 참조하십시오.
RHOSP(Red Hat OpenStack Platform)는 각 인스턴스에 대해 최대 24개의 인터페이스를 제공합니다. 기본적으로 인스턴스를 재부팅하기 전에 최대 16개의 NetNamespace 장치를 인스턴스에 추가할 수 있습니다. RHOSP 관리자는 인스턴스를 재부팅하기 전에 NovaLibvirtNumPciePorts 매개변수를 사용하여 인스턴스에 추가할 수 있는 NetNamespace 장치 수를 구성할 수 있습니다.
사전 요구 사항
- SR-IOV vNIC가 있는 포트를 인스턴스에 연결하는 경우 적절한 물리적 네트워크의 호스트에 사용 가능한 SR-IOV 장치가 있어야 하며 인스턴스에는 무료 controlPlane 슬롯이 있어야 합니다.
절차
인스턴스에 연결할 포트를 생성합니다.
$ openstack port create --network <network> [--vnic-type <vnic-type>] <port>
-
<network>를 포트를 생성할 네트워크의 이름 또는 ID로 바꿉니다. 선택 사항: SR-IOV 포트를 생성하려면 <
vnic-type>을 다음 값 중 하나로 교체합니다.-
직접: 직접 모드 SR-IOV VF(가상 기능) 포트를 생성합니다. -
direct-physical: 직접 모드 SR-IOV 물리적 기능(PF) 포트를 생성합니다. -
macvtap: MacVTap 장치를 통해 인스턴스에 연결된 SR-IOV 포트를 생성합니다.
-
-
<port>를 인스턴스에 연결할 포트의 이름 또는 ID로 바꿉니다.
-
인스턴스에 포트를 연결합니다.
$ openstack server add port <instance> <port>
-
<instance>를 포트를 연결할 인스턴스의 이름 또는 ID로 바꿉니다. -
<port>를 인스턴스에 연결할 포트의 이름 또는 ID로 바꿉니다.
-
포트가 인스턴스에 연결되어 있는지 확인합니다.
$ openstack port list --device-id <instance_UUID>
&
lt;instance_UUID>를 포트를 연결한 인스턴스의 UUID로 바꿉니다.
추가 리소스
8.4. 인스턴스에서 포트 분리
인스턴스에서 포트를 분리할 수 있습니다.
절차
인스턴스에 연결된 포트를 식별합니다.
(overcloud)$ openstack server show <instance>
인스턴스에서 포트를 분리합니다.
$ openstack server remove port <instance> <port>
-
<instance>를 에서 포트를 제거할 인스턴스의 이름 또는 ID로 바꿉니다. -
<port>를 인스턴스에서 제거할 포트의 이름 또는 ID로 바꿉니다.
-
8.5. 인스턴스에 볼륨 연결
영구 스토리지의 인스턴스에 볼륨을 연결할 수 있습니다. 볼륨을 다중 연결 볼륨으로 구성하지 않는 한 한 번에 하나의 인스턴스에만 볼륨을 연결할 수 있습니다. 다중 연결 볼륨 생성에 대한 자세한 내용은 여러 인스턴스에 연결할 수 있는 볼륨을 참조하십시오.
사전 요구 사항
-
다중 연결 볼륨을 연결하려면 환경 변수
OS_COMPUTE_API_VERSION이 2.60 이상으로 설정됩니다. - 인스턴스가 완전히 작동하거나 완전히 중지됩니다. 인스턴스가 부팅되거나 종료되는 프로세스에 있는 경우 볼륨을 인스턴스에 연결할 수 없습니다.
인스턴스에 26개 이상의 볼륨을 연결하려면 인스턴스를 만드는 데 사용한 이미지에 다음 속성이 있어야 합니다.
-
hw_scsi_model=virtio-scsi -
hw_disk_bus=scsi
-
절차
사용 가능한 볼륨을 식별하고 인스턴스에 연결할 볼륨의 이름 또는 ID를 확인합니다.
(overcloud)$ openstack volume list
인스턴스에 볼륨을 연결합니다.
$ openstack server add volume <instance> <volume>
-
<instance>를 볼륨을 연결할 인스턴스의 이름 또는 ID로 바꿉니다. <volume>을 인스턴스에 연결할 볼륨의 이름 또는 ID로 바꿉니다.참고명령에서 다음 오류를 반환하는 경우 인스턴스에 연결하도록 선택한 볼륨은 다중 연결 볼륨이므로 Compute API 버전 2.60 이상을 사용해야 합니다.
Multiattach volumes are only supported starting with compute API version 2.60. (HTTP 400) (Request-ID: req-3a969c31-e360-4c79-a403-75cc6053c9e5)
인스턴스에 볼륨을 추가할 때 환경 변수
OS_COMPUTE_API_VERSION=2.72를 설정하거나--os-compute-api-version인수를 포함할 수 있습니다.$ openstack --os-compute-api-version 2.72 server add volume <instance> <volume>
작은 정보상태가
SHELVED또는SHELVED_OFFLOADED인 인스턴스에 볼륨을 추가하려면--os-compute-api-version 2.20이상을 지정합니다.-
볼륨이 인스턴스 또는 인스턴스에 연결되었는지 확인합니다.
$ openstack volume show <volume>
&
lt;volume>을 표시할 볼륨의 이름 또는 ID로 바꿉니다.출력 예:
+-----------------------------------------------------+----------------------+---------+-----+-----------------------------------------------------------------------------------------------+ | ID | Name | Status | Size| Attached to +-----------------------------------------------------+---------------------+---------+------+---------------------------------------------------------------------------------------------+ | f3fb92f6-c77b-429f-871d-65b1e3afa750 | volMultiattach | in-use | 50 | Attached to instance1 on /dev/vdb Attached to instance2 on /dev/vdb | +-----------------------------------------------------+----------------------+---------+-----+-----------------------------------------------------------------------------------------------+
8.6. 인스턴스에 연결된 볼륨 보기
특정 인스턴스에 연결된 볼륨을 볼 수 있습니다.
사전 요구 사항
-
python-openstackclient 5.5.0을 사용하고 있습니다.
절차
인스턴스에 연결된 볼륨을 나열합니다.
$ openstack server volume list <instance> +---------------------+----------+---------------------+-----------------------+ | ID | Device | Server ID | Volume ID | +---------------------+----------+---------------------+-----------------------+ | 1f9dcb02-9a20-4a4b- | /dev/vda | ab96b635-1e63-4487- | 1f9dcb02-9a20-4a4b-9f | | 9f25-c7846a1ce9e8 | | a85c-854197cd537b | 25-c7846a1ce9e8 | +---------------------+----------+---------------------+-----------------------+
8.7. 인스턴스에서 볼륨 분리
인스턴스에서 볼륨을 분리할 수 있습니다.
네트워크를 분리하여 모든 네트워크 포트를 분리합니다. 인스턴스에 네트워크에 포트가 여러 개 있고 해당 포트 중 하나만 분리하려면 인스턴스 프로세스에서 포트 분리를 수행하여 포트를 분리합니다.
사전 요구 사항
- 인스턴스가 완전히 작동하거나 완전히 중지됩니다. 인스턴스가 부팅 또는 종료 중일 때 인스턴스에서 볼륨을 분리할 수 없습니다.
절차
인스턴스에 연결된 볼륨을 확인합니다.
(overcloud)$ openstack server show <instance>
인스턴스에서 볼륨을 분리합니다.
$ openstack server remove volume <instance> <volume>
-
<instance>를 볼륨에서 제거할 인스턴스의 이름 또는 ID로 바꿉니다. <volume>을 인스턴스에서 제거할 볼륨의 이름 또는 ID로 바꿉니다.참고상태가
SHELVED또는SHELVED_OFFLOADED인 인스턴스에서 볼륨을 제거하려면--os-compute-api-version 2.20이상을 지정합니다.
-
9장. 인스턴스에 대한 공용 액세스 제공
새 인스턴스는 인스턴스가 할당된 네트워크에서 고정 IP 주소가 있는 포트를 자동으로 수신합니다. 이 IP 주소는 비공개이며 인스턴스가 삭제될 때까지 인스턴스와 영구적으로 연결됩니다. 고정 IP 주소는 인스턴스 간 통신에 사용됩니다.
공용 IP 주소가 인스턴스에 직접 할당되는 공유 외부 네트워크에 직접 공용 인스턴스를 연결할 수 있습니다. 이는 프라이빗 클라우드에서 작업하는 경우 유용합니다.
외부 공급자 네트워크에 대한 라우팅된 연결이 있는 프로젝트 네트워크를 통해 인스턴스에 대한 공용 액세스를 제공할 수도 있습니다. 퍼블릭 클라우드에서 작업하거나 공용 IP 주소가 제한된 경우 기본 방법입니다. 프로젝트 네트워크를 통해 공용 액세스를 제공하려면 게이트웨이가 외부 네트워크로 설정된 라우터에 프로젝트 네트워크를 연결해야 합니다. 외부 트래픽이 인스턴스에 연결하려면 클라우드 사용자가 유동 IP 주소를 인스턴스와 연결해야 합니다.
공유 외부 네트워크 또는 라우팅된 공급자 네트워크에 연결되어 있는지 여부에 관계없이 인스턴스에서 및 에 대한 액세스를 제공하려면 SSH, ICMP 또는 HTTP와 같은 필수 프로토콜의 보안 그룹 규칙을 구성해야 합니다. 또한 인스턴스에 원격으로 액세스할 수 있도록 만드는 동안 인스턴스에 키 쌍을 전달해야 합니다.
9.1. 사전 요구 사항
- 외부 네트워크에는 유동 IP 주소를 제공하는 서브넷이 있어야 합니다.
- 프로젝트 네트워크는 게이트웨이로 구성된 외부 네트워크가 있는 라우터에 연결되어 있어야 합니다.
9.2. 보안 그룹 및 키 쌍으로 인스턴스 액세스 보안
보안 그룹은 인스턴스에 대한 네트워크 및 프로토콜 액세스를 제어하는 IP 필터 규칙 집합입니다. (예: ICMP) 인스턴스를 ping할 수 있도록 하는 SSH 및 SSH로 인스턴스에 연결할 수 있습니다. 보안 그룹 규칙은 프로젝트 내의 모든 인스턴스에 적용됩니다.
모든 프로젝트에는 default 라는 기본 보안 그룹이 있습니다. 이 그룹은 인스턴스의 보안 그룹을 지정하지 않을 때 사용됩니다. 기본적으로 기본 보안 그룹은 나가는 모든 트래픽을 허용하고 동일한 보안 그룹의 인스턴스가 아닌 다른 소스에서 들어오는 모든 트래픽을 거부합니다. 기본 보안 그룹에 규칙을 추가하거나 프로젝트에 대한 새 보안 그룹을 생성할 수 있습니다. 인스턴스 생성 중에 인스턴스에 하나 이상의 보안 그룹을 적용할 수 있습니다. 실행 중인 인스턴스에 보안 그룹을 적용하려면 인스턴스에 연결된 포트에 보안 그룹을 적용합니다.
인스턴스를 생성하는 동안에는 RBAC(역할 기반 액세스 제어)-공유 보안 그룹을 인스턴스에 직접 적용할 수 없습니다. RBAC-shared 보안 그룹을 인스턴스에 적용하려면 먼저 포트를 생성하고, 공유 보안 그룹을 해당 포트에 적용한 다음 해당 포트를 인스턴스에 할당해야 합니다. 포트에 보안 그룹 추가를 참조하십시오.
키 쌍은 인스턴스에 대한 원격 액세스를 활성화하기 위해 시작할 때 인스턴스에 삽입되는 SSH 또는 x509 자격 증명입니다. RHOSP에서 새 키 쌍을 생성하거나 기존 키 쌍을 가져올 수 있습니다. 각 사용자에게는 하나 이상의 키 쌍이 있어야 합니다. 키 쌍은 여러 인스턴스에 사용할 수 있습니다.
각 키 쌍은 프로젝트 대신 키 쌍을 만들거나 가져온 개별 사용자에 속하므로 프로젝트 내 사용자 간에 키 쌍을 공유할 수 없습니다.
9.2.1. 보안 그룹 생성
프로젝트 내의 인스턴스 및 포트에 적용할 새 보안 그룹을 만들 수 있습니다.
절차
선택 사항: 필요한 보안 그룹이 아직 존재하지 않도록 하려면 사용 가능한 보안 그룹 및 해당 규칙을 검토하십시오.
$ openstack security group list $ openstack security group rule list <sec_group>
-
<sec_group>을 사용 가능한 보안 그룹 목록에서 검색한 보안 그룹의 이름 또는 ID로 바꿉니다.
-
보안 그룹을 생성합니다.
$ openstack security group create mySecGroup
보안 그룹에 규칙을 추가합니다.
$ openstack security group rule create --protocol <protocol> \ [--dst-port <port-range>] \ [--remote-ip <ip-address> | --remote-group <group>] \ [--ingress | --egress] mySecGroup
-
<protocol>을 인스턴스와 통신할 수 있는 프로토콜 이름으로 바꿉니다. -
선택 사항:
<port-range>를 프로토콜에 대해 열 대상 포트 또는 포트 범위로 바꿉니다. IP 프로토콜 TCP, UDP 및 SCTP에 필요합니다. 지정된 프로토콜의 모든 포트를 허용하려면-1로 설정합니다. -
선택 사항:
--remote-ip를 사용하여 원격 IP 주소 블록을 지정하거나--remote-group을 사용하여 규칙이 원격 그룹의 멤버인 인터페이스의 패킷에만 적용되도록 지정하여 지정된 IP 주소에서만 액세스를 허용할 수 있습니다. remote-ip를 사용하는 경우<ip-address>를 원격 IP 주소 블록으로 바꿉니다. CIDR 표기법을 사용할 수 있습니다.--remote-group을 사용하는 경우<group>을 기존 보안 그룹의 이름 또는 ID로 바꿉니다. 옵션을 지정하지 않으면 원격 IP 액세스 범위 기본값(IPv4 기본값)으로 모든 주소에 액세스가 허용됩니다.0.0.0.0/0; IPv6 default:::/0). -
프로토콜 규칙이 적용되는 네트워크 트래픽의 방향을
수신( 인그레스) 또는 발신(송신) 중 하나에 지정합니다. 지정하지 않는 경우 기본값은ingress입니다.
-
인스턴스에 액세스할 수 있는 모든 프로토콜에 대한 규칙을 생성할 때까지 3단계를 반복합니다. 다음 예제에서는 보안 그룹
mySecGroup의 인스턴스에 SSH 연결을 허용하는 규칙을 생성합니다.$ openstack security group rule create --protocol tcp \ --dst-port 22 mySecGroup
9.2.2. 보안 그룹 규칙 업데이트
액세스할 수 있는 모든 보안 그룹의 규칙을 업데이트할 수 있습니다.
절차
규칙을 업데이트하려는 보안 그룹의 이름 또는 ID를 검색합니다.
$ openstack security group list
- 보안 그룹에 적용해야 하는 규칙을 결정합니다.
보안 그룹에 규칙을 추가합니다.
$ openstack security group rule create --protocol <protocol> \ [--dst-port <port-range>] \ [--remote-ip <ip-address> | --remote-group <group>] \ [--ingress | --egress] <group_name>
-
<protocol>을 인스턴스와 통신할 수 있는 프로토콜 이름으로 바꿉니다. -
선택 사항:
<port-range>를 프로토콜에 대해 열 대상 포트 또는 포트 범위로 바꿉니다. IP 프로토콜 TCP, UDP 및 SCTP에 필요합니다. 지정된 프로토콜의 모든 포트를 허용하려면-1로 설정합니다. -
선택 사항:
--remote-ip를 사용하여 원격 IP 주소 블록을 지정하거나--remote-group을 사용하여 규칙이 원격 그룹의 멤버인 인터페이스의 패킷에만 적용되도록 지정하여 지정된 IP 주소에서만 액세스를 허용할 수 있습니다. remote-ip를 사용하는 경우<ip-address>를 원격 IP 주소 블록으로 바꿉니다. CIDR 표기법을 사용할 수 있습니다.--remote-group을 사용하는 경우<group>을 기존 보안 그룹의 이름 또는 ID로 바꿉니다. 옵션을 지정하지 않으면 원격 IP 액세스 범위 기본값(IPv4 기본값)으로 모든 주소에 액세스가 허용됩니다.0.0.0.0/0; IPv6 default:::/0). -
프로토콜 규칙이 적용되는 네트워크 트래픽의 방향을
수신( 인그레스) 또는 발신(송신) 중 하나에 지정합니다. 지정하지 않는 경우 기본값은ingress입니다. -
<group_name>을 규칙을 적용할 보안 그룹의 이름 또는 ID로 바꿉니다.
-
인스턴스에 액세스할 수 있는 모든 프로토콜에 대한 규칙을 생성할 때까지 3단계를 반복합니다. 다음 예제에서는 보안 그룹
mySecGroup의 인스턴스에 SSH 연결을 허용하는 규칙을 생성합니다.$ openstack security group rule create --protocol tcp \ --dst-port 22 mySecGroup
9.2.3. 보안 그룹 규칙 삭제
보안 그룹에서 규칙을 삭제할 수 있습니다.
절차
규칙이 적용되는 보안 그룹을 식별합니다.
$ openstack security group list
보안 그룹과 연결된 규칙의 ID를 검색합니다.
$ openstack security group show <sec-group>
규칙 또는 규칙을 삭제합니다.
$ openstack security group rule delete <rule> [<rule> ...]
<rule>을 삭제할 규칙의 ID로 바꿉니다. 삭제할 규칙의 공백으로 구분된 목록을 지정하여 한 번에 두 개 이상의 규칙을 삭제할 수 있습니다.
9.2.4. 포트에 보안 그룹 추가
기본 보안 그룹은 대체 보안 그룹을 지정하지 않는 인스턴스에 적용됩니다. 실행 중인 인스턴스의 포트에 대체 보안 그룹을 적용할 수 있습니다.
절차
보안 그룹을 적용할 인스턴스의 포트를 결정합니다.
$ openstack port list --server myInstancewithSSH
보안 그룹을 포트에 적용합니다.
$ openstack port set --security-group <sec_group> <port>
<sec_group>을 실행 중인 인스턴스의 포트에 적용하려는 보안 그룹의 이름 또는 ID로 바꿉니다. 필요에 따라--security-group옵션을 두 번 이상 사용하여 여러 보안 그룹을 적용할 수 있습니다.
9.2.5. 포트에서 보안 그룹 제거
포트에서 보안 그룹을 제거하려면 먼저 모든 보안 그룹을 제거한 다음 해당 포트에 할당하려는 보안 그룹을 다시 추가해야 합니다.
절차
포트와 연결된 모든 보안 그룹을 나열하고 해당 포트와 연결된 보안 그룹의 ID를 기록합니다.
$ openstack port show <port>
포트와 연결된 모든 보안 그룹을 제거합니다.
$ openstack port set --no-security-group <port>
보안 그룹을 포트에 다시 적용합니다.
$ openstack port set --security-group <sec_group> <port>
<sec_group>을 실행 중인 인스턴스의 포트에 다시 적용하려는 보안 그룹의 ID로 바꿉니다. 필요에 따라--security-group옵션을 두 번 이상 사용하여 여러 보안 그룹을 적용할 수 있습니다.
9.2.6. 보안 그룹 삭제
모든 포트와 연결되지 않은 보안 그룹을 삭제할 수 있습니다.
절차
삭제하려는 보안 그룹의 이름 또는 ID를 검색합니다.
$ openstack security group list
사용 가능한 포트 목록을 검색합니다.
$ openstack port list
연결된 보안 그룹에 대해 각 포트를 확인합니다.
$ openstack port show <port-uuid> -c security_group_ids
삭제하려는 보안 그룹이 임의의 포트와 연결된 경우 먼저 포트에서 보안 그룹을 제거해야 합니다. 자세한 내용은 포트에서 보안 그룹 제거를 참조하십시오.
보안 그룹을 삭제합니다.
$ openstack security group delete <group> [<group> ...]
<group>을 삭제하려는 그룹의 ID로 바꿉니다. 삭제할 그룹 ID의 공백으로 구분된 목록을 지정하여 한 번에 두 개 이상의 그룹을 삭제할 수 있습니다.
9.2.7. 새 SSH 키 쌍 생성
프로젝트 내에서 사용할 새 SSH 키 쌍을 생성할 수 있습니다.
x509 인증서를 사용하여 Windows 인스턴스의 키 쌍을 생성합니다.
절차
키 쌍을 생성하고 로컬
.ssh디렉터리에 개인 키를 저장합니다.$ openstack keypair create <keypair> > ~/.ssh/<keypair>.pem
<keypair>를 새 키 쌍의 이름으로 바꿉니다.개인 키를 보호합니다.
$ chmod 600 ~/.ssh/<keypair>.pem
9.2.8. 기존 SSH 키 쌍 가져오기
새 키 쌍을 생성할 때 공개 키 파일을 제공하여 RHOSP(Red Hat OpenStack Platform) 외부에서 생성한 프로젝트로 SSH 키를 가져올 수 있습니다.
절차
기존 키 파일에서 키 쌍을 생성하고 로컬
.ssh디렉터리에 개인 키를 저장합니다.기존 공개 키 파일에서 키 쌍을 가져오려면 다음 명령을 입력합니다.
$ openstack keypair create --public-key ~/.ssh/<public_key>.pub \ <keypair> > ~/.ssh/<keypair>.pem
-
<public_key>를 키 쌍을 생성하는 데 사용할 공개 키 파일의 이름으로 바꿉니다. -
<keypair>를 새 키 쌍의 이름으로 바꿉니다.
-
기존 개인 키 파일에서 키 쌍을 가져오려면 다음 명령을 입력합니다.
$ openstack keypair create --private-key ~/.ssh/<private_key> \ <keypair> > ~/.ssh/<keypair>.pem
-
<private_key>를 키 쌍을 만드는 데 사용할 공개 키 파일의 이름으로 바꿉니다. -
<keypair>를 새 키 쌍의 이름으로 바꿉니다.
-
개인 키를 보호합니다.
$ chmod 600 ~/.ssh/<keypair>.pem
9.2.9. 추가 리소스
- 네트워킹 가이드 의 보안 그룹.
- 사용자 및 ID 관리 가이드의 프로젝트 보안 관리.
9.3. 인스턴스에 유동 IP 주소 할당
공용 유동 IP 주소를 인스턴스에 할당하여 인터넷을 포함하여 클라우드 외부 네트워크와의 통신을 활성화할 수 있습니다. 클라우드 관리자는 외부 네트워크에 사용 가능한 유동 IP 주소 풀을 구성합니다. 이 풀에서 유동 IP 주소를 프로젝트에 할당한 다음 유동 IP 주소를 인스턴스와 연결할 수 있습니다.
프로젝트에는 프로젝트의 인스턴스에서 사용할 수 있는 유동 IP 주소 할당량이 제한되어 있으며 기본적으로 50개입니다. 따라서 더 이상 필요하지 않은 경우 재사용할 수 있도록 IP 주소를 릴리스합니다.
사전 요구 사항
- 인스턴스는 외부 네트워크 또는 게이트웨이로 구성된 외부 네트워크가 있는 라우터에 연결된 프로젝트 네트워크에 있어야 합니다.
- 인스턴스에 연결할 외부 네트워크에는 유동 IP 주소를 제공하는 서브넷이 있어야 합니다.
절차
현재 프로젝트에 할당된 유동 IP 주소를 확인합니다.
$ openstack floating ip list
사용할 수 있는 유동 IP 주소가 없는 경우 외부 네트워크 할당 풀에서 현재 프로젝트에 유동 IP 주소를 할당합니다.
$ openstack floating ip create <provider-network>
<provider-network>를 외부 액세스를 제공하는 데 사용할 외부 네트워크의 이름 또는 ID로 바꿉니다.작은 정보기본적으로 유동 IP 주소는 외부 네트워크 풀에서 무작위로 할당됩니다. 클라우드 관리자는 --floating-ip-address 옵션을 사용하여 외부 네트워크에서 특정 유동 IP 주소를 할당할 수 있습니다.
인스턴스에 유동 IP 주소를 할당합니다.
$ openstack server add floating ip [--fixed-ip-address <ip_address>] \ <instance> <floating_ip>
-
<instance>를 공용 액세스를 제공하는 인스턴스의 이름 또는 ID로 바꿉니다. -
<floating_ip>를 인스턴스에 할당하려는 유동 IP 주소로 바꿉니다. -
선택 사항:
<ip_address>를 유동 IP를 연결할 인터페이스의 IP 주소로 바꿉니다. 기본적으로 유동 IP 주소를 첫 번째 포트에 연결합니다.
-
유동 IP 주소가 인스턴스에 할당되었는지 확인합니다.
$ openstack server show <instance>
추가 리소스
- 네트워킹 가이드에서 유동 IP 풀 생성.
9.4. 인스턴스에서 유동 IP 주소 연결 해제
인스턴스에 더 이상 공용 액세스가 필요하지 않으면 인스턴스에서 연결을 끊고 할당 풀로 반환합니다.
절차
인스턴스에서 유동 IP 주소의 연결을 끊습니다.
$ openstack server remove floating ip <instance> <ip_address>
-
<instance>를 공용 액세스를 제거할 인스턴스의 이름 또는 ID로 바꿉니다. -
<floating_ip>를 인스턴스에 할당된 유동 IP 주소로 바꿉니다.
-
유동 IP 주소를 다시 할당 풀로 해제합니다.
$ openstack floating ip delete <ip_address>
유동 IP 주소가 삭제되었으며 더 이상 할당에 사용할 수 없는지 확인합니다.
$ openstack floating ip list
9.5. SSH 액세스를 사용하여 인스턴스 생성
인스턴스를 생성할 때 키 쌍을 지정하여 인스턴스에 대한 SSH 액세스 권한을 제공할 수 있습니다. 키 쌍은 시작 시 인스턴스에 삽입되는 SSH 또는 x509 자격 증명입니다. 각 프로젝트에는 하나 이상의 키 쌍이 있어야 합니다. 키 쌍은 프로젝트가 아닌 개별 사용자에 속합니다.
인스턴스를 만든 후에는 키 쌍을 인스턴스와 연결할 수 없습니다.
인스턴스를 생성하는 동안 인스턴스에 직접 보안 그룹을 적용하거나 실행 중인 인스턴스의 포트에 적용할 수 있습니다.
인스턴스를 생성하는 동안에는 RBAC(역할 기반 액세스 제어)-공유 보안 그룹을 인스턴스에 직접 적용할 수 없습니다. RBAC-shared 보안 그룹을 인스턴스에 적용하려면 먼저 포트를 생성하고, 공유 보안 그룹을 해당 포트에 적용한 다음 해당 포트를 인스턴스에 할당해야 합니다. 포트에 보안 그룹 추가를 참조하십시오.
사전 요구 사항
- 인스턴스에 SSH를 수행하는 데 사용할 수 있는 키 쌍을 사용할 수 있습니다. 자세한 내용은 새 SSH 키 쌍 생성 을 참조하십시오.
- 인스턴스를 만들려는 네트워크는 외부 네트워크이거나 게이트웨이로 구성된 외부 네트워크가 있는 라우터에 연결된 프로젝트 네트워크여야 합니다. 자세 한 내용은 네트워킹 가이드의 라우터 추가를 참조하십시오.
- 인스턴스에 연결하는 외부 네트워크에 유동 IP 주소를 제공하는 서브넷이 있어야 합니다.
- 보안 그룹은 인스턴스에 대한 SSH 액세스를 허용합니다. 자세한 내용은 보안 그룹 및 키 쌍을 사용하여 인스턴스 액세스 보안을 참조하십시오.
-
인스턴스가 기반으로 하는 이미지에 SSH 공개 키를 인스턴스에 삽입하는
cloud-init패키지가 포함되어 있습니다. - 인스턴스에 유동 IP 주소를 할당할 수 있습니다. 자세한 내용은 인스턴스에 유동 IP 주소 할당을 참조하십시오.
절차
인스턴스에 필요한 하드웨어 프로필이 있는 플레이버의 이름 또는 ID를 검색합니다.
$ openstack flavor list
참고이미지가 성공적으로 부팅될 수 있도록 크기가 충분한 플레이버를 선택합니다. 그러지 않으면 인스턴스가 시작되지 않습니다.
인스턴스에 필요한 소프트웨어 프로필이 있는 이미지의 이름 또는 ID를 검색합니다.
$ openstack image list
필요한 이미지를 사용할 수 없는 경우 새 이미지를 다운로드하거나 생성할 수 있습니다. 클라우드 이미지 생성 또는 다운로드에 대한 자세한 내용은 이미지 생성 을 참조하십시오.
인스턴스를 연결할 네트워크의 이름 또는 ID를 검색합니다.
$ openstack network list
인스턴스에 원격으로 액세스하는 데 사용할 키 쌍의 이름을 검색합니다.
$ openstack keypair list
SSH 액세스를 사용하여 인스턴스를 생성합니다.
$ openstack server create --flavor <flavor> \ --image <image> --network <network> \ [--security-group <secgroup>] \ --key-name <keypair> --wait myInstancewithSSH
-
<flavor>를 1단계에서 검색한 플레이버의 이름 또는 ID로 바꿉니다. -
<image>를 2단계에서 검색한 이미지의 이름 또는 ID로 바꿉니다. -
<network>를 3단계에서 검색한 네트워크의 이름 또는 ID로 바꿉니다. 필요에 따라--network옵션을 두 번 이상 사용하여 인스턴스를 여러 네트워크에 연결할 수 있습니다. -
선택 사항:
기본보안 그룹은 대체 보안 그룹을 지정하지 않는 인스턴스에 적용됩니다. 인스턴스를 생성하는 동안 인스턴스에 또는 실행 중인 인스턴스의 포트에 대체 보안 그룹을 직접 적용할 수 있습니다. 인스턴스를 생성할 때 대체 보안 그룹을 지정하려면--security-group옵션을 사용합니다. 실행 중인 인스턴스의 포트에 보안 그룹을 추가하는 방법에 대한 자세한 내용은 포트에 보안 그룹 추가를 참조하십시오. -
<keypair>를 4단계에서 검색한 키 쌍의 이름 또는 ID로 바꿉니다.
-
인스턴스에 유동 IP 주소를 할당합니다.
$ openstack server add floating ip myInstancewithSSH <floating_ip>
<floating_ip>를 인스턴스에 할당하려는 유동 IP 주소로 바꿉니다.자동으로 생성된
cloud-user계정을 사용하여 SSH를 사용하여 인스턴스에 로그인할 수 있는지 확인합니다.$ ssh -i ~/.ssh/<keypair>.pem cloud-user@<floatingIP> [cloud-user@demo-server1 ~]$
9.6. 추가 리소스
10장. 인스턴스에 연결
인스턴스 보안 그룹 규칙에서 프로토콜을 허용하는 경우 SSH 또는 WinRM과 같은 원격 쉘을 사용하여 클라우드 외부의 위치에서 인스턴스에 액세스할 수 있습니다. 네트워크 연결이 실패하더라도 디버그할 수 있도록 인스턴스의 콘솔에 직접 연결할 수도 있습니다.
인스턴스에 키 쌍을 제공하거나 인스턴스에 보안 그룹을 할당하지 않은 경우 VNC를 사용하여 클라우드 내부에서만 인스턴스에 액세스할 수 있습니다. 인스턴스를 ping할 수 없습니다.
10.1. 인스턴스 콘솔에 액세스
브라우저에 VNC 콘솔 URL을 입력하여 인스턴스의 VNC 콘솔에 직접 연결할 수 있습니다.
절차
인스턴스의 VNC 콘솔 URL을 표시하려면 다음 명령을 입력합니다.
$ openstack console url show <vm_name> +-------+------------------------------------------------------+ | Field | Value | +-------+------------------------------------------------------+ | type | novnc | | url | http://172.25.250.50:6080/vnc_auto.html?token= | | | 962dfd71-f047-43d3-89a5-13cb88261eb9 | +-------+-------------------------------------------------------+
- VNC 콘솔에 직접 연결하려면 브라우저에 표시된 URL을 입력합니다.
10.2. 인스턴스에 로그인
공용 인스턴스에 원격으로 로그인할 수 있습니다.
사전 요구 사항
- 인스턴스의 키 쌍 인증서가 있습니다. 키 쌍이 생성되면 인증서가 다운로드됩니다. 키 쌍을 직접 생성하지 않은 경우 관리자에게 문의하십시오.
- 인스턴스는 공용 인스턴스로 구성됩니다. 공용 인스턴스의 요구 사항에 대한 자세한 내용은 인스턴스에 대한 공용 액세스 제공을 참조하십시오.
- 클라우드 사용자 계정이 있습니다.
절차
로그인할 인스턴스의 유동 IP 주소를 검색합니다.
$ openstack server show <instance>
<instance>를 연결하려는 인스턴스의 이름 또는 ID로 바꿉니다.자동으로 생성된
cloud-user계정을 사용하여 인스턴스에 로그인합니다.$ ssh -i ~/.ssh/<keypair>.pem cloud-user@<floatingIP> [cloud-user@demo-server1 ~]$
-
<Order>를 키 쌍의 이름으로 바꿉니다. <floating_ip>를 인스턴스의 유동 IP 주소로 바꿉니다.작은 정보다음 명령을 사용하여 유동 IP 주소 없이 인스턴스에 로그인할 수 있습니다.
$ openstack server ssh --login cloud-user \ --identity ~/.ssh/<keypair>.pem --private <instance>
-
<Order>를 키 쌍의 이름으로 바꿉니다. -
<instance>를 연결하려는 인스턴스의 이름 또는 ID로 바꿉니다.
-
-
11장. 인스턴스 관리
인스턴스 크기 조정 또는 인스턴스 보류와 같은 인스턴스에서 관리 작업을 수행할 수 있습니다. 전체 관리 작업 목록은 인스턴스 관리 작업을 참조하십시오.
11.1. 인스턴스 크기 조정
인스턴스의 메모리 또는 CPU 수를 늘리거나 줄여야 하는 경우 인스턴스의 크기를 조정할 수 있습니다. 인스턴스의 크기를 조정하려면 필요한 용량이 있는 인스턴스의 새 플레이버를 선택합니다. 인스턴스가 다시 빌드되고 인스턴스를 다시 시작합니다.
절차
크기를 조정하려는 인스턴스의 이름 또는 ID를 검색합니다.
$ openstack server list
인스턴스의 크기를 조정하는 데 사용할 플레이버의 이름 또는 ID를 검색합니다.
$ openstack flavor list
인스턴스의 크기를 조정합니다.
$ openstack server resize --flavor <flavor> \ --wait <instance>
-
<flavor>를 2단계에서 검색한 플레이버의 이름 또는 ID로 바꿉니다. -
<instance>를 크기 조정할 인스턴스의 이름 또는 ID로 바꿉니다.
참고크기 조정은 시간이 걸릴 수 있습니다. 인스턴스의 운영 체제는 인스턴스의 전원이 꺼지고 인스턴스의 크기가 조정되기 전에 제어된 종료를 수행합니다. 이 시간 동안 인스턴스 상태는
RESIZE입니다.$ openstack server list +----------------------+----------------+--------+----------------------------+ | ID | Name | Status | Networks | +----------------------+----------------+--------+----------------------------+ | 67bc9a9a-5928-47c... | myCirrosServer | RESIZE | admin_internal_net=192.168.111.139 | +----------------------+----------------+--------+----------------------------+
-
크기 조정이 완료되면 인스턴스 상태가
VERIFY_RESIZE으로 변경됩니다. 이제 크기 조정을 확인하거나 되돌려야 합니다.크기 조정을 확인하려면 다음 명령을 입력합니다.
$ openstack server resize confirm <instance>
크기 조정을 되돌리려면 다음 명령을 입력합니다.
$ openstack server resize revert <instance>
인스턴스가 원래 플레이버로 복원되고 상태가 EgressIP로
변경됩니다.
구성된 시간 프레임 내에서 확인하거나 되돌아가지 않으면 인스턴스 크기 조정을 자동으로 확인하도록 클라우드를 구성할 수 있습니다.
11.2. 인스턴스 스냅샷 생성
스냅샷은 인스턴스의 실행 중인 디스크 상태를 캡처하는 이미지입니다. 인스턴스의 스냅샷을 작성하여 새 인스턴스를 생성하는 데 템플릿으로 사용할 수 있는 이미지를 생성할 수 있습니다. 스냅샷을 사용하면 다른 인스턴스에서 새 인스턴스를 생성하고 인스턴스 상태를 복원할 수 있습니다. 스냅샷을 기반으로 하는 인스턴스를 삭제하는 경우 스냅샷 이미지를 사용하여 스냅샷과 동일한 상태에 새 인스턴스를 만들 수 있습니다.
절차
스냅샷을 생성할 인스턴스의 이름 또는 ID를 검색합니다.
$ openstack server list
스냅샷을 생성합니다.
$ openstack server image create --name <image_name> <instance>
-
<image_name>을 새 스냅샷 이미지의 이름으로 바꿉니다. -
<instance>를 스냅샷을 생성할 인스턴스의 이름 또는 ID로 바꿉니다.
-
선택 사항: 인스턴스 스냅샷을 템플릿으로 사용하여 새 인스턴스를 생성할 때 디스크 상태가 일관되도록 하려면 QEMU 게스트 에이전트를 활성화하고 스냅샷 이미지에 다음 메타데이터를 추가하여 스냅샷 처리 중에 파일 시스템을 정지해야 함을 지정합니다.
$ openstack image set --property hw_qemu_guest_agent=yes \ --property os_require_quiesce=yes <image_name>
QEMU 게스트 에이전트는 관리 애플리케이션이 인스턴스 OS 수준 명령을 실행하는 데 도움이 되는 백그라운드 프로세스입니다. 이 에이전트를 활성화하면 PCI 슬롯을 사용하는 다른 장치를 인스턴스에 추가하고 인스턴스에 할당할 수 있는 다른 장치 수를 제한합니다. 또한 Windows 인스턴스가 알 수 없는 하드웨어 장치에 대한 경고 메시지를 표시하도록 합니다.
11.3. 인스턴스 복구
시스템 오류 또는 액세스 오류와 같은 긴급 상황에서 인스턴스를 복구 모드로 배치할 수 있습니다. 이렇게 하면 인스턴스가 종료되고 새 인스턴스 디스크로 재부팅되고 원래 인스턴스 디스크 및 구성 드라이브가 재부팅된 인스턴스의 볼륨으로 마운트됩니다. 재부팅된 인스턴스에 연결하여 원래 인스턴스 디스크를 확인하여 시스템을 복구하고 데이터를 복구할 수 있습니다.
절차
인스턴스 복구를 수행합니다.
$ openstack server rescue [--image <image>] <instance>
-
선택 사항: 기본적으로 인스턴스는 클라우드 관리자가 제공하는 복구 이미지 또는 원래 인스턴스 이미지의 새 복사본에서 부팅됩니다. 복구 모드에서 인스턴스를 재부팅할 때 사용할 대체 이미지를 지정하려면
--image옵션을 사용합니다. -
<instance>를 복구할 인스턴스의 이름 또는 ID로 바꿉니다.
-
선택 사항: 기본적으로 인스턴스는 클라우드 관리자가 제공하는 복구 이미지 또는 원래 인스턴스 이미지의 새 복사본에서 부팅됩니다. 복구 모드에서 인스턴스를 재부팅할 때 사용할 대체 이미지를 지정하려면
- 복구된 인스턴스에 연결하여 문제를 해결합니다.
일반 부팅 디스크에서 인스턴스를 다시 시작하십시오.
$ openstack server unrescue <instance>
11.4. 인스턴스 보류
mysqllving은 사용하지 않는 인스턴스가 있지만 삭제하지 않는 경우 유용합니다. 인스턴스를 보류하면 인스턴스 데이터 및 리소스 할당을 유지하지만 인스턴스 메모리를 지웁니다. 클라우드 구성에 따라 보류된 인스턴스는 즉시 또는 시간 지연 후 SHELVED_OFFLOADED 상태로 이동합니다. SHELVED_OFFLOADED 가 되면 인스턴스 데이터 및 리소스 할당이 삭제됩니다.
인스턴스를 보류하면 Compute 서비스는 인스턴스 상태를 캡처하는 스냅샷 이미지를 생성하고 다음 형식의 이미지에 이름을 할당합니다. <instance>-shelved. 이 스냅샷 이미지는 인스턴스가 보류 해제되거나 삭제될 때 삭제됩니다.
보류된 인스턴스가 더 이상 필요하지 않은 경우 해당 인스턴스를 삭제할 수 있습니다. 한 번에 두 개 이상의 인스턴스를 보류할 수 있습니다.
절차
보류하려는 인스턴스 또는 인스턴스의 이름 또는 ID를 검색합니다.
$ openstack server list
인스턴스 또는 인스턴스를 보류합니다.
$ openstack server shelve <instance> [<instance> ...]
<instance>를 보류하려는 인스턴스의 이름 또는 ID로 바꿉니다. 필요에 따라 인스턴스에 두 개 이상의 인스턴스를 지정할 수 있습니다.인스턴스가 보류되었는지 확인합니다.
$ openstack server list
보류된 인스턴스의 상태는
SHELVED_OFFLOADED.
11.5. 인스턴스 관리 작업
인스턴스를 생성한 후 다음 관리 작업을 수행할 수 있습니다.
표 11.1. 관리 작업
| 작업 | 설명 | 명령 |
|---|---|---|
| 인스턴스를 중지 | 인스턴스를 중지합니다. | |
| 인스턴스 시작 | 중지된 인스턴스를 시작합니다. | |
| 실행 중인 인스턴스 일시 중지 | 실행 중인 인스턴스를 즉시 일시 중지합니다. 인스턴스 상태는 메모리(RAM)에 저장됩니다. 일시 중지된 인스턴스는 정지 상태에서 계속 실행됩니다. pause 작업을 확인하는 메시지가 표시되지 않습니다. | |
| 일시 중지된 인스턴스의 실행을 재개 | 일시 중지된 인스턴스를 즉시 다시 시작합니다. resume 작업을 확인하는 메시지가 표시되지 않습니다. | |
| 실행 중인 인스턴스 일시 중단 | 실행 중인 인스턴스를 즉시 일시 중지합니다. 인스턴스 상태는 인스턴스 디스크에 저장됩니다. suspend 작업을 확인하는 메시지가 표시되지 않습니다. | |
| 일시 중지된 인스턴스의 실행을 재개 | 일시 중지된 인스턴스를 즉시 다시 시작합니다. 인스턴스 상태는 인스턴스 디스크에 저장됩니다. resume 작업을 확인하는 메시지가 표시되지 않습니다. | |
| 인스턴스 삭제 | 인스턴스를 영구적으로 삭제합니다. destroy 작업을 확인하라는 메시지가 표시되지 않습니다. 소프트 삭제를 활성화하도록 클라우드를 구성하지 않는 한 삭제된 인스턴스는 복구할 수 없습니다. 참고 인스턴스를 삭제해도 연결된 볼륨은 삭제되지 않습니다. 연결된 볼륨을 별도로 삭제해야 합니다. 자세 한 내용은 스토리지 가이드의 블록 스토리지 서비스 볼륨 삭제를 참조하십시오. | |
| 인스턴스 메타데이터 편집 | 인스턴스 메타데이터를 사용하여 인스턴스의 속성을 지정할 수 있습니다. 자세한 내용은 사용자 지정 인스턴스 생성을 참조하십시오. |
|
| 보안 그룹 추가 | 지정된 보안 그룹을 인스턴스에 추가합니다. | |
| 보안 그룹 제거 | 인스턴스에서 지정된 보안 그룹을 제거합니다. | |
| 시스템 오류 또는 액세스 오류와 같은 긴급 상황에서 인스턴스를 복구 모드로 배치할 수 있습니다. 그러면 인스턴스가 종료되고 임시 서버에 root 디스크가 마운트됩니다. 임시 서버에 연결하여 시스템을 복구하고 데이터를 복구할 수 있습니다. 실행 중인 인스턴스를 복구 모드로 재부팅할 수도 있습니다. 예를 들어 인스턴스의 파일 시스템이 손상되는 경우 이 작업이 필요할 수 있습니다. | ||
| 복구된 인스턴스 복원 | 복구된 인스턴스를 재부팅합니다. | |
| 인스턴스 로그보기 | 인스턴스 콘솔 로그의 최신 섹션을 확인합니다. | |
|
인스턴스를 보류하면 인스턴스 데이터 및 리소스 할당을 유지하지만 인스턴스 메모리를 지웁니다. 클라우드 구성에 따라 보류된 인스턴스는 즉시 또는 시간 지연 후 | ||
| 인스턴스를 보류 해제합니다. | 보류된 인스턴스의 디스크 이미지를 사용하여 인스턴스를 복원합니다. | |
| 인스턴스 잠금 | 관리자가 아닌 사용자가 인스턴스에서 작업을 실행하지 못하도록 인스턴스를 잠급니다. | |
| 인스턴스를 소프트 재부팅 | 인스턴스를 정상적으로 중지하고 다시 시작합니다. 소프트 재부팅은 인스턴스를 재시작하기 전에 모든 프로세스를 정상적으로 종료하려고 합니다. 기본적으로 인스턴스를 재부팅하면 소프트 재부팅입니다. | |
| 인스턴스를 하드 재부팅 | 인스턴스를 중지하고 다시 시작합니다. 하드 재부팅은 인스턴스의 전원을 종료한 다음 다시 켭니다. | |
| 인스턴스 다시 빌드 | 새 이미지 및 디스크 파티션 옵션을 사용하여 인스턴스를 다시 빌드하여 인스턴스를 종료, 재이미지 및 재부팅해야 합니다. 인스턴스를 종료하고 다시 시작하는 대신 운영 체제 문제가 발생하는 경우 이 옵션을 사용합니다. |
12장. 사용자 지정 인스턴스 생성
클라우드 사용자는 인스턴스가 부팅 시 실행되는 쉘 스크립트와 같이 인스턴스를 시작할 때 사용할 추가 데이터를 지정할 수 있습니다. 클라우드 사용자는 다음 방법을 사용하여 인스턴스에 데이터를 전달할 수 있습니다.
- 사용자 데이터
-
cloud-init를 실행하기 위한 인스턴스 시작 명령에 명령을 포함하려면 을 사용합니다. - 인스턴스 메타데이터
- 인스턴스를 만들거나 업데이트할 때 지정할 수 있는 키-값 쌍 목록입니다.
구성 드라이브 또는 메타데이터 서비스를 사용하여 인스턴스에 전달되는 추가 데이터에 액세스할 수 있습니다.
- 구성 드라이브
-
부팅 시 구성 드라이브를 인스턴스에 연결할 수 있습니다. 구성 드라이브는 읽기 전용 드라이브로 인스턴스에 제공됩니다. 인스턴스에서 이 드라이브를 마운트하고 해당 드라이브에서 파일을 읽을 수 있습니다. 구성 드라이브를
cloud-init정보의 소스로 사용할 수 있습니다. 구성 드라이브는 서버 부트스트랩에cloud-init와 결합할 때 유용하며 큰 파일을 인스턴스에 전달하려는 경우 유용합니다. 예를 들어 config 드라이브를 자동으로 마운트하고 초기 인스턴스 부팅 중에 설정 스크립트를 실행하도록cloud-init를 구성할 수 있습니다. 구성 드라이브는config-2의 볼륨 레이블을 사용하여 생성되고 부팅 시 인스턴스에 연결됩니다. 구성 드라이브에 전달된 추가 파일의 내용은 구성 드라이브의openstack/{version}/디렉터리의user_data파일에 추가됩니다.cloud-init는 이 파일에서 사용자 데이터를 검색합니다. - 메타데이터 서비스
-
인스턴스와 관련된 데이터를 검색하는 REST API를 제공합니다. 인스턴스는
169.254.169.254또는fe80::a9fe:a9fe에서 이 서비스에 액세스합니다.
cloud-init 는 구성 드라이브와 메타데이터 서비스를 모두 사용하여 인스턴스를 사용자 정의하는 데 추가 데이터를 사용할 수 있습니다. cloud-init 패키지는 다양한 데이터 입력 형식을 지원합니다. 쉘 스크립트 및 cloud-config 형식은 가장 일반적인 입력 형식입니다.
-
쉘 스크립트: 데이터 선언은
#!또는Content-Type: text/x-shellscript로 시작합니다. 쉘 스크립트는 부팅 프로세스에서 마지막에 호출됩니다. -
cloud-config형식: 데이터 선언은#cloud-config또는Content-Type: text/cloud-config.cloud-config파일은cloud-init에서 구문 분석하고 실행할 유효한 YAML이어야 합니다.
cloud-init 는 인스턴스로 전달되는 데이터에 대한 최대 사용자 데이터 크기가 16384바이트입니다. 크기 제한을 변경할 수 없으므로 크기 제한을 초과해야 하는 경우에는 gzip 압축을 사용합니다.
벤더별 데이터
RHOSP 관리자는 생성될 때 인스턴스에 데이터를 전달할 수도 있습니다. 이 데이터는 예를 들어 Active Directory에서 인스턴스를 등록하는 암호화 토큰과 같이 클라우드 사용자로 표시되지 않을 수 있습니다.
RHOSP 관리자는 vendordata 기능을 사용하여 인스턴스에 데이터를 전달합니다. Vendordata 구성은 읽기 전용이며 다음 파일 중 하나에 있습니다.
-
/openstack/{version}/vendor_data.json -
/openstack/{version}/vendor_data2.json
메타데이터 서비스 또는 인스턴스의 구성 드라이브에서 이러한 파일을 볼 수 있습니다. 메타데이터 서비스를 사용하여 파일에 액세스하려면 http://169.254.169.254/openstack/{version}/vendor_data.json 또는 http://169.254.169.254/openstack/{version}/vendor_data2.json 에 GET 요청을 합니다.
12.1. 사용자 데이터를 사용하여 인스턴스 사용자 지정
사용자 데이터를 사용하여 인스턴스 시작 명령에 지침을 포함할 수 있습니다. cloud-init 는 이러한 명령을 실행하여 부팅 프로세스의 마지막 단계로 인스턴스를 사용자 지정할 수 있습니다.
절차
cloud-init에 대한 지침으로 파일을 생성합니다. 예를 들어 인스턴스에서 웹 서버를 설치하고 활성화하는 bash 스크립트를 생성합니다.$ vim /home/scripts/install_httpd #!/bin/bash yum -y install httpd python-psycopg2 systemctl enable httpd --now
user
-data옵션으로 인스턴스를 시작하여 bash 스크립트를 전달합니다.$ openstack server create \ --image rhel8 \ --flavor default \ --nic net-id=web-server-network \ --security-group default \ --key-name web-server-keypair \ --user-data /home/scripts/install_httpd \ --wait web-server-instance
인스턴스 상태가 활성 상태이면 유동 IP 주소를 연결합니다.
$ openstack floating ip create web-server-network $ openstack server add floating ip web-server-instance 172.25.250.123
SSH를 사용하여 인스턴스에 로그인합니다.
$ ssh -i ~/.ssh/web-server-keypair cloud-user@172.25.250.123
사용자 지정이 성공적으로 수행되었는지 확인합니다. 예를 들어 웹 서버가 설치되고 활성화되어 있는지 확인하려면 다음 명령을 입력합니다.
$ curl http://localhost | grep Test <title>Test Page for the Apache HTTP Server on Red Hat Enterprise Linux</title> <h1>Red Hat Enterprise Linux <strong>Test Page</strong></h1>
cloud-init가 실행되었는지 여부와 같은 관련 메시지의/var/log/cloud-init.log파일을 검토합니다.$ sudo less /var/log/cloud-init.log ...output omitted... ...util.py[DEBUG]: Cloud-init v. 0.7.9 finished at Sat, 23 Jun 2018 02:26:02 +0000. Datasource DataSourceOpenStack [net,ver=2]. Up 21.25 seconds
12.2. 메타데이터를 사용하여 인스턴스 사용자 지정
인스턴스 메타데이터를 사용하여 인스턴스 시작 명령에서 인스턴스의 속성을 지정할 수 있습니다.
절차
--property <key=value>옵션을 사용하여 인스턴스를 시작합니다. 예를 들어 인스턴스를 웹 서버로 표시하려면 다음 속성을 설정합니다.$ openstack server create \ --image rhel8 \ --flavor default \ --property role=webservers \ --wait web-server-instance
선택 사항: 예를 들면 다음과 같이 인스턴스를 생성한 후 추가 속성을 추가합니다.
$ openstack server set \ --property region=emea \ --wait web-server-instance
12.3. 구성 드라이브를 사용하여 인스턴스 사용자 지정
인스턴스 부팅 프로세스 중에 연결된 인스턴스의 구성 드라이브를 생성할 수 있습니다. 구성 드라이브가 인스턴스에 사용할 수 있는 구성 드라이브에 콘텐츠를 전달할 수 있습니다.
절차
구성 드라이브를 활성화하고 구성 드라이브에서 사용 가능하게 하려는 내용이 포함된 파일을 지정합니다. 예를 들어 다음 명령은
config-drive-instance라는 새 인스턴스를 생성하고my-user-data.txt파일의 콘텐츠가 포함된 구성 드라이브를 연결합니다.(overcloud)$ openstack server create --flavor m1.tiny \ --config-drive true \ --user-data ./my-user-data.txt \ --image cirros config-drive-instance
이 명령은 부팅 시 인스턴스에 연결된
config-2의 볼륨 레이블을 사용하여 config 드라이브를 생성하고, 구성 드라이브의openstack/{version}/디렉터리에my-user-의 콘텐츠를 추가합니다.data.txt- 인스턴스에 로그인합니다.
구성 드라이브를 마운트합니다.
인스턴스 OS에서
udev를 사용하는 경우 :# mkdir -p /mnt/config # mount /dev/disk/by-label/config-2 /mnt/config
인스턴스 OS에서
udev를 사용하지 않는 경우 먼저 config 드라이브에 해당하는 블록 장치를 식별해야 합니다.# blkid -t LABEL="config-2" -odevice /dev/vdb # mkdir -p /mnt/config # mount /dev/vdb /mnt/config