[CCCR] 프라이빗 오픈 클라우드를 위한 오픈스택 구축 및 운영 (3)

Nam_JU·2025년 5월 29일
0

openstack

목록 보기
3/4

인스턴스 관리를 위하여 nova_api가 healthy상태인지 확인

  • 로그 확인

(os-venv) vagrant@openstack-aio:/etc/kolla$ sudo ls /var/log/kolla/nova
apache-access.log    nova-api-error.log  nova-conductor.log        nova-metadata-error.log  privsep-helper.log
apache-error.log     nova-api.log        nova-manage.log           nova-novncproxy.log
nova-api-access.log  nova-compute.log    nova-metadata-access.log  nova-scheduler.log
(os-venv) vagrant@openstack-aio:/etc/kolla$

오픈스택 네트워크

  • flat: VLAN 없이 하나의 물리 네트워크를 모든 인스턴스가 공유함. 네트워크 격리 불가.

  • vlan: VLAN 태깅을 사용해 네트워크를 분리. 물리 네트워크에 VLAN 설정 필요. 보안성과 성능이 좋음.

  • vxlan: 오버레이 네트워크로, 논리적으로 분리된 네트워크를 생성함. 확장성 뛰어남. 터널링 방식 사용.

  • gre: VXLAN과 유사한 오버레이 방식이지만, 현재는 성능 문제로 잘 사용하지 않음.


(os-venv) vagrant@openstack-aio:/etc/kolla$ sudo cat /etc/kolla/neutron-server/ml2_conf.ini
[ml2]
type_drivers = flat,vlan,vxlan
tenant_network_types = vxlan
mechanism_drivers = openvswitch,l2population
extension_drivers = port_security

[ml2_type_vlan]
network_vlan_ranges =

[ml2_type_flat]
flat_networks = physnet1

[ml2_type_vxlan]
vni_ranges = 1:1000


인스턴스는 내부 네트워크를 생성
외부 내트워크는 관리자가 관리>네트워크>네트워크에서 설정.
물리적인 네트워크 설정에 맞춰서 생성 sudo cat /etc/kolla/neutron-server/ml2_conf.ini
외부네트워크는 gateway로 따로 설정
라우터 - 인터페이스는 내부 네트워크를 연결할때 사용

  • 네트워크 생성: openstack network create --external --share --provider-network-type flat --provider-physical-network physnet1 external

(os-venv) vagrant@openstack-aio:/etc/kolla$ openstack network create --external --share --provider-network-type flat --provider-physical-network physnet1 external
+---------------------------+--------------------------------------+
| Field                     | Value                                |
+---------------------------+--------------------------------------+
| admin_state_up            | UP                                   |
| availability_zone_hints   |                                      |
| availability_zones        |                                      |
| created_at                | 2025-05-29T02:39:10Z                 |
| description               |                                      |
| dns_domain                | None                                 |
| id                        | 8a1128a8-6a73-4d3c-978e-a46fb08236a9 |
| ipv4_address_scope        | None                                 |
| ipv6_address_scope        | None                                 |
| is_default                | False                                |
| is_vlan_transparent       | None                                 |
| mtu                       | 1500                                 |
| name                      | external                             |
| port_security_enabled     | True                                 |
| project_id                | 00855a5cafa646478a16f350df1f00f6     |
| provider:network_type     | flat                                 |
| provider:physical_network | physnet1                             |
| provider:segmentation_id  | None                                 |
| qos_policy_id             | None                                 |
| revision_number           | 1                                    |
| router:external           | External                             |
| segments                  | None                                 |
| shared                    | True                                 |
| status                    | ACTIVE                               |
| subnets                   |                                      |
| tags                      |                                      |
| tenant_id                 | 00855a5cafa646478a16f350df1f00f6     |
| updated_at                | 2025-05-29T02:39:10Z                 |
+---------------------------+--------------------------------------+
(os-venv) vagrant@openstack-aio:/etc/kolla$ openstack router create new-rt
+-------------------------+--------------------------------------+
| Field                   | Value                                |
+-------------------------+--------------------------------------+
| admin_state_up          | UP                                   |
| availability_zone_hints |                                      |
| availability_zones      |                                      |
| created_at              | 2025-05-29T02:40:37Z                 |
| description             |                                      |
| distributed             | False                                |
| enable_ndp_proxy        | None                                 |
| external_gateway_info   | null                                 |
| flavor_id               | None                                 |
| ha                      | False                                |
| id                      | f4a0cb02-ee72-491d-8383-9ba3aef6e55b |
| name                    | new-rt                               |
| project_id              | 00855a5cafa646478a16f350df1f00f6     |
| revision_number         | 1                                    |
| routes                  |                                      |
| status                  | ACTIVE                               |
| tags                    |                                      |
| tenant_id               | 00855a5cafa646478a16f350df1f00f6     |
| updated_at              | 2025-05-29T02:40:37Z                 |
+-------------------------+--------------------------------------+
(os-venv) vagrant@openstack-aio:/etc/kolla$ openstack router set --external-gateway external new-rt
(os-venv) vagrant@openstack-aio:/etc/kolla$ openstack subnet create --no-dhcp --subnet-range 192.168.0.0/24 --gateway 192.168.0.254 --allocation-pool start=192.168.0.100,end=192.168.0.200 --network external external-subnet
+----------------------+--------------------------------------+
| Field                | Value                                |
+----------------------+--------------------------------------+
| allocation_pools     | 192.168.0.100-192.168.0.200          |
| cidr                 | 192.168.0.0/24                       |
| created_at           | 2025-05-29T02:44:01Z                 |
| description          |                                      |
| dns_nameservers      |                                      |
| dns_publish_fixed_ip | None                                 |
| enable_dhcp          | False                                |
| gateway_ip           | 192.168.0.254                        |
| host_routes          |                                      |
| id                   | 09589f62-aba5-466b-862f-550975d75799 |
| ip_version           | 4                                    |
| ipv6_address_mode    | None                                 |
| ipv6_ra_mode         | None                                 |
| name                 | external-subnet                      |
| network_id           | 8a1128a8-6a73-4d3c-978e-a46fb08236a9 |
| project_id           | 00855a5cafa646478a16f350df1f00f6     |
| revision_number      | 0                                    |
| segment_id           | None                                 |
| service_types        |                                      |
| subnetpool_id        | None                                 |
| tags                 |                                      |
| updated_at           | 2025-05-29T02:44:01Z                 |
+----------------------+--------------------------------------+
(os-venv) vagrant@openstack-aio:/etc/kolla$ openstack router create new-rt
+-------------------------+--------------------------------------+
| Field                   | Value                                |
+-------------------------+--------------------------------------+
| admin_state_up          | UP                                   |
| availability_zone_hints |                                      |
| availability_zones      |                                      |
| created_at              | 2025-05-29T02:44:27Z                 |
| description             |                                      |
| distributed             | False                                |
| enable_ndp_proxy        | None                                 |
| external_gateway_info   | null                                 |
| flavor_id               | None                                 |
| ha                      | False                                |
| id                      | e955f531-66a1-4c1d-80a8-539ddf765beb |
| name                    | new-rt                               |
| project_id              | 00855a5cafa646478a16f350df1f00f6     |
| revision_number         | 1                                    |
| routes                  |                                      |
| status                  | ACTIVE                               |
| tags                    |                                      |
| tenant_id               | 00855a5cafa646478a16f350df1f00f6     |
| updated_at              | 2025-05-29T02:44:27Z                 |
+-------------------------+--------------------------------------+
(os-venv) vagrant@openstack-aio:/etc/kolla$ openstack router delete e955f531-66a1-4c1d-80a8-539ddf765beb
(os-venv) vagrant@openstack-aio:/etc/kolla$ openstack router set --external-gateway external new-rt
(os-venv) vagrant@openstack-aio:/etc/kolla$ openstack router add subnet net-work subnet new-rt ^C
(os-venv) vagrant@openstack-aio:/etc/kolla$ openstack subnet list --network net-work
No Network found for net-work
(os-venv) vagrant@openstack-aio:/etc/kolla$ openstack subnet list
+--------------------------------------+-----------------+--------------------------------------+------------------+
| ID                                   | Name            | Network                              | Subnet           |
+--------------------------------------+-----------------+--------------------------------------+------------------+
| 09589f62-aba5-466b-862f-550975d75799 | external-subnet | 8a1128a8-6a73-4d3c-978e-a46fb08236a9 | 192.168.0.0/24   |
| a2413f79-f267-4f09-af80-dfa00071bc90 | internal-subnet | 0929ac61-e38a-4f18-8cc2-08daf4d61397 | 192.168.100.0/24 |
| e485a912-594b-4c5d-a7a3-46bee0139c2a | lb-mgmt-subnet  | 1b3dc678-3fc3-435c-9d4e-642100de4763 | 10.1.0.0/24      |
+--------------------------------------+-----------------+--------------------------------------+------------------+
(os-venv) vagrant@openstack-aio:/etc/kolla$ openstack router add subnet new-rt internal-subnet

  • openstack network create --external --share --provider-network-type flat --provider-physical-network physnet1 external

  • openstack router create new-rt

  • openstack router set --external-gateway external new-rt

  • openstack subnet create --no-dhcp --subnet-range 192.168.0.0/24 --gateway 192.168.0.254 --allocation-pool start=192.168.0.100,end=192.168.0.200 --network external external-subnet

  • openstack router create new-rt
  • openstack router set --external-gateway external new-rt
  • openstack router add subnet new-rt internal-subnet

시큐리티 그룹

 openstack security group create new-sg
 openstack security group rule list new-sg
 openstack security group rule create --protocol tcp --dst-port 80 new-sg
 openstack server add security group test-vm new-sg
 openstack server show test-vm

 
(os-venv) vagrant@openstack-aio:/etc/kolla$ openstack server remove security group test-vm new-sg
(os-venv) vagrant@openstack-aio:/etc/kolla$ openstack security group delete new-sg
 

keypair 생성


(os-venv) vagrant@openstack-aio:/etc/kolla$ openstack keypair create --private-key new-key.pem new-key
+-------------+-------------------------------------------------+
| Field       | Value                                           |
+-------------+-------------------------------------------------+
| created_at  | None                                            |
| fingerprint | 7a:5a:62:27:c4:ca:d8:42:e4:72:1d:62:06:58:7b:e3 |
| id          | new-key                                         |
| is_deleted  | None                                            |
| name        | new-key                                         |
| type        | ssh                                             |
| user_id     | 58d8e1d0c87143aaad968509ea167b17                |
+-------------+-------------------------------------------------+
(os-venv) vagrant@openstack-aio:/etc/kolla$ chmod 400 new-key.pem
(os-venv) vagrant@openstack-aio:/etc/kolla$ openstack server create --key-name ^C
(os-venv) vagrant@openstack-aio:/etc/kolla$
(os-venv) vagrant@openstack-aio:/etc/kolla$ openstack security group create new -sg          ^C
(os-venv) vagrant@openstack-aio:/etc/kolla$ openstack security group rule create --protocol tcp --dst-port 2 --remote-ip 0.0.0.0/0 new-sg          ^C
(os-venv) vagrant@openstack-aio:/etc/kolla$
(os-venv) vagrant@openstack-aio:/etc/kolla$ openstack server add security htoup new-sg ssh-vm           ^C
(os-venv) vagrant@openstack-aio:/etc/kolla$ openstack floating ip create external     ^C
(os-venv) vagrant@openstack-aio:/etc/kolla$
(os-venv) vagrant@openstack-aio:/etc/kolla$
(os-venv) vagrant@openstack-aio:/etc/kolla$ openstack server add floating ip ssh-vm 192.168.0.150            ^C
(os-venv) vagrant@openstack-aio:/etc/kolla$
(os-venv) vagrant@openstack-aio:/etc/kolla$
(os-venv) vagrant@openstack-aio:/etc/kolla$ ssh -i new-key.pem cirrors@192.19.0.10^C
(os-venv) vagrant@openstack-aio:/etc/kolla$

스토리지

  • 블록 스토리지 (Cinder) :
    VM에 디스크처럼 attach해서 사용하는 가상 디스크를 제공
  • 오브젝트 스토리지 (Swift) :
    대용량 비정형 데이터를 객체 형태로 저장. Amazon S3와 유사한 구조
  • 이미지 스토리지 (Glance) :
    VM을 생성하기 위한 운영체제 이미지를 저장하고 관리
  • 파일 스토리지 (Manila) :
    여러 VM 간 공유 가능한 파일 시스템(NFS 등)을 제공

  • 볼륨 생성 : openstack volume create --size 1 new-volume
  • 볼륨 연결 : openstack server add volume test-vm new-volume

### 볼륨 삭제
(os-venv) vagrant@openstack-aio:/etc/kolla$ openstack server remove volume test-vm new-volume
(os-venv) vagrant@openstack-aio:/etc/kolla$ openstack delete new-volume

실습

  1. 1G 크기의 볼륨을 생성, 이름:practice-volume
  2. test-vm인스턴스에 만든 볼륨을 연결
  3. 인스턴스의 콘솔에 접속
  4. lsblk등의 명령어로 연결 확인
  5. xfs/ext4 파일시스템으로 포멧하고 /mnt 디렉토리 마운트
  6. /etc/hosts 파일을 /mnt 디렉토리에 복사
  7. 마운트 해제 및 볼륨 연결 해제
  8. new-vm에 볼륨 연결 후 확인
  9. /dirA 디렉토리를 만들어서 마운트한 후 확인
  10. 볼륨은 연결만 해제 (삭제하지 않음)
openstack volume create --size 1 practice-volume
openstack server add volume test-vm practice-volume

login: cirros
password: gocubsgo





오픈스택에서의 스토리지

  1. 임시 스토리지
  • 플레이버에 의해 할당되는 저장장치
  • 인스턴스 생성시 함께 생성, 삭제 시 함께 삭제
  • 데이터도 함께 삭제
  1. 영구 스토리지
    1) 블록 스토리지(Cinder 서비스로 관리)

    • 인스턴스에 직접 연결해서 사용(한번에 하나의 인스턴스에만가능)
    • 인스턴스 내부에서 포맷/마운트 후 데이터 저장
    • 관리 단위를 볼륨
    • 특정 시점의 상태를 저장할 때에는 스냅샷
    • 볼륨의 데이터를 안전하게 백업할 때에는 백업
    • 모든 작업들은 기본적으로 특정 프로젝트 안에서만 사용
    • 볼륨 전송 기능을 통해 다른 프로젝트에 전달

    2) 오브젝트 스토리지(swift)

    • 인스턴스와 별개로 사용하는 스토리지
    • 대시보드 / openstack 명령어로 접근 가능
    • URL 주소로 접근가능 (설정에 따라)
    • 파일서버처럼 원하는 데이터(파일) 저장/ 다운로드

  • 볼륨 스냅샷 생성: openstack volume snapshot create --volume practice-volume new-snap --force

  • 볼륨 백업 생성 : openstack volume backup create --name backup-cli practice-volume --force


볼륨 백업 생성 → 인스턴스에서 분리 → 전송 요청 생성

  • transfer 요청 생성: openstack volume transfer request create practice-volume

  • transfer 수락: openstack volume transfer request accept <transfer-request-id> --auth-key <auth-key>

  • volume transfer란?
    볼륨을 다른 사용자나 프로젝트에 넘기기 위한 기능. 보안상 auth-key가 반드시 필요
    transfer 요청은 생성한 쪽과 수락하는 쪽이 다를 때 사용된다.

![](https://velog.velcdn.com/images/jupiter-j/post/ff59038d-bb26-4fd0-9459-841563e64e16/image.png)


오브젝트 스토리지

오브젝트 스토리지는 파일을 저장하고 불러오는 저장소

  • 파일 하나하나를 오브젝트(object)라고 부름
  • 박스 같은 공간인 컨테이너(container)에 넣어서 정리
  • 하드디스크처럼 디렉토리 구조는 없음, 대신 메타데이터로 관리
  • 보통 읽기/쓰기만 하고, 수정은 거의 안 함
## 컨테이너 생성
openstack container create new-con

## 오브젝트(파일) 업로드
openstack object create new-con all-in-one

## 오브젝트 목록 확인
openstack object create new-con all-in-one


컨테이너를 public으로 변경
해당 설정변경으로 wget명령어를 사용하여 파일을 다운받을 수 있음




https://daaa0555.tistory.com/420

profile
개발기록

0개의 댓글