반응형

* VM의 MTU 값 변경

* Openstack Network MTU 값 변경
$ vim /etc/kolla/neutron-dhcp-agent/dnsmasq.conf

log-facility=/var/log/kolla/neutron/dnsmasq.log
### Adding ###
dhcp-option-force=option:mtu,1400 
또는
dhcp-option-force=26,1400

$ docker restart neutron_dhcp_agent

반응형
반응형

1. Openstack VGPU Setting 관련한 내용을 정리한다.

 

### Kolla-ansible VGPU 세팅 테스트

### VGPU OS 설치 파일 다운로드 및 컴퓨트 노드 설치

$ dpkg -i nvidia-vgpu-ubuntu-470_470.82_amd64.deb

$ vim /etc/default/grub

GRUB_CMDLINE_LINUX="intel_iommu=on modprobe.blacklist=nouveau"

$ lspci -nn | grep NVIDIA


$  update-grub

### 설정 가능한 nvidia 디바이스 타입 확인

$ cd /sys/class/mdev_bus/0000\:3b\:00.0
$  cd mdev_supported_types/


$  for i in *; do echo "" $(cat $i/name) available: $(cat $i/avail*); done

### nova.conf에 해당 설정 디바이스 타입 적용하여 vgpu 사용할 타입 선택

$ vim /etc/kolla/nova-compute/nova.conf

[devices]
enabled_vgpu_types = nvidia-232

 

$ nvidia-smi

 

반응형
반응형

1. Openstack Kolla-ansible 설치 방법을 안내한다.

2. OpenVSwitch를 사용하여 네트워크를 세팅한다.

 


1. OS 환경

  • CentOS 7.8
  • Controller, Compute 각각 운영 환경
  • 네트워크 포트 최소 2~4개(External, MGMT, Data, Storage)

 


2. Openstack OS 기본 설정

   2.1 기본 툴 설치

$ yum install vim net-tools -y               ### 기본 툴 설치

$ yum install nfs-utils -y                   ### NAS 스토리지 연결시 필요

 

   2.2 네트워크 설정

### IPv6 중지 및 설정 확인

$ vim /etc/sysctl.conf 
 net.ipv6.conf.all.disable_ipv6 = 1 
 net.ipv6.conf.default.disable_ipv6 = 1 
 net.ipv6.conf.lo.disable_ipv6 = 1

$ sysctl -p  
### 방화벽 및 네트워크 매니저 중지

$ systemctl stop firewalld

$ systemctl disable firewalld

$ systemctl stop NetworkManager

$ systemctl disable NetworkManager

 

   2.3 Hosts 파일 설정

### Hosts 파일 설정

$ vim /etc/hosts
 172.16.0.1 controller01 con01
 172.16.0.2 controller02 con02
 172.16.0.3 controller03 con03
 172.16.0.11 compute01 com01
 172.16.0.12 compute02 com02

 

   2.4 네트워크 세팅

### 네트워크 설정

### External IP 세팅 

$ vim /etc/sysconfig/network-scripts/ifcfg-br-ex
DEVICE=br-ex
DEVICETYPE=ovs
ONBOOT=yes
TYPE=OVSBridge
DELAY=0
STP=off
NM_CONTROLLED=no
PIFDEV=eno3
BOOTPROTO=none
IPADDR=192.168.10.1 ~ 192.168.10.5
NETMASK=255.255.255.0
GATEWAY=192.168.10.254
DNS1=8.8.8.8

$ vim /etc/sysconfig/network-scripts/ifcfg-eno3
DEVICE=eno3
DEVICETYPE=ovs
ONBOOT=yes
TYPE=OVSPort
NM_CONTROLLED=no
BOOTPROTO=none
OVS_BRIDGE=br-ex
USERCTL=no

### 데이터망 IP 세팅
$ vim /etc/sysconfig/network-scripts/ifcfg-br-int
DEVICE=br-int
DEVICETYPE=ovs
ONBOOT=yes
TYPE=OVSBridge
DELAY=0
STP=off
NM_CONTROLLED=no
PIFDEV=eno5
BOOTPROTO=none
IPADDR=172.17.0.1 ~ 172.17.0.5
NETMASK=255.255.255.0

$ vim /etc/sysconfig/network-scripts/ifcfg-eno5
DEVICE=eno5
DEVICETYPE=ovs
ONBOOT=yes
TYPE=OVSPort
NM_CONTROLLED=no
BOOTPROTO=none
OVS_BRIDGE=br-int
USERCTL=no
IPADDR=172.17.0.101 ~ 172.17.0.105
NETMASK=255.255.255.0

### 관리망 IP 세팅
$ vim /etc/sysconfig/network-scripts/ifcfg-eno4
TYPE=Ethernet
BOOTPROTO=none
NAME=eno4
DEVICE=eno4
ONBOT=yes
IPADDR=172.16.0.1 ~ 172.16.0.5
NETMASK=255.255.255.0

### 스토리지망 IP 세팅
$ vim /etc/sysconfig/network-scripts/ifcfg-eno6
TYPE=Ethernet
BOOTPROTO=none
NAME= eno6
DEVICE= eno6
ONBOT=yes
IPADDR=100.100.100.1 ~ 100.100.100.5
NETMASK=255.255.255.0

 

   2.5 Openstack 패키지 설치

### Kolla-ansible Stein 버전 설치를 위한 패키지 다운로드

$ yum install –y epel-release
$ yum install –y epel-release https://repos.fedorapeople.org/repos/openstack/openstack-stein/rdo-release-stein-3.noarch.rpm
$ yum install –y openvswitch bridge-utils
$ systemctl start openvswitch
$ systemctl enable openvswitch
### 서버 재부팅시 다음 모듈 ON 시켜주어야함.

modprobe ip_vs

modprobe ip6_tables

modprobe openvswitch

   2.6 SSH Key 설정

### 모든 서버들의 SSH Key 설정

$ ssh-keygen -t rsa

$ ssh-copy-id root@controller01 ~ compute02 

   2.7 Selinux 비활성화

$ vim /etc/selinux/config

  SELINUX=disabled

$ reboot

3. Kolla 의존성 설치

   3.1 Kolla 의존성 설치

     - 현재 Python 2 지원대가 끊김으로 Python 3 버전도 추가설치 해준다.

     - Python 패키지 설치, pip 설치, pip docker 설치

$ yum install -y python-devel libffi-devel gcc openssl-devel libselinux-python python-pip

$ yum install -y python3-devel libselinux-python3 

$ pip list |grep pip               

### pip 버전이 낮을 경우 업그레이드 해준다.
$ pip install --upgrade pip==20.2.4
$ pip install docker==4.4.0        

 

   3.2 Ansible 설치 및 설정

$ yum install –y ansible
$ rpm –qa |grep ansible                     ### Ansible 버전 확인
$ vim /etc/ansible/ansible.cfg              ### Ansible 설정값 변경
 [defaults]
	forks = 100
	host_key_checking = false
 [ssh_connection]
	pipelining = True

### pip ansible 둘다 설치 필요
$ pip install ansible==2.8.8 또는 pip install ‘ansible<2.10’
$ pip3 install ansible==2.8.8 또는 pip3 install ‘ansible<2.10’


### Error 발생시 
pip3 install setuptools_rust
pip3 install wheelpython 
pip install --ignore-installed PyYAML

  3.3 Kolla 패키지 설치 (Controller01 서버만 수행)

- Kolla-ansible Stein 버전 기준, 타 버전 설치시 Openstack 공홈 참고
- https://releases.openstack.org/teams/kolla.html


pip install kolla-ansible==8.3.0                                  ### Stein 8.3.0

cp -r /usr/share/kolla-ansible/etc_examples/kolla /etc/kolla/        ### 파일 복사

cp -r /usr/share/kolla-ansible/ansible/inventory/ /root/            ### 파일 복사

 

4. Kolla 설치 패키지 설정

  4.1 Multinode 파일 설정

# ansible -i multinode all -m ping
network_interface = 해당 서버내부 data nic 명칭
api_interface = 해당 서버 내부 mgmt. nic 명칭
neutron_external_interface = 해당 서버 서비스망 nic 명칭
kolla_external_vip_interface = 해당 서버 서비스망 nic 명칭
storage_interface = 해당 서버 스토리지 nic 명칭
tunnel_interface = 해당 서버내부 data nic 명칭


$ vim /root/inventory/multimode

[control]
controller01 network_interface=eno5 api_interface=eno4 neutron_external_interface=eno3 kolla_external_vip_interface=eno3
controller02 network_interface=eno5 api_interface=eno4 neutron_external_interface=eno3 kolla_external_vip_interface=eno3
controller03 network_interface=eno2 api_interface=eno3 neutron_external_interface=eno4 kolla_external_vip_interface=eno4

[network]
controller01 network_interface=eno5 api_interface=eno4 neutron_external_interface=eno3 kolla_external_vip_interface=eno3
controller02 network_interface=eno5 api_interface=eno4 neutron_external_interface=eno3 kolla_external_vip_interface=eno3
controller03 network_interface=eno2 api_interface=eno3 neutron_external_interface=eno4 kolla_external_vip_interface=eno4
		
[compute]
compute01 network_interface=eno2 api_interface=eno3 storage_interface=eno1 tunnel_interface=eno2
compute02 network_interface=eno2 api_interface=eno3 storage_interface=eno1 tunnel_interface=eno2

[monitoring]
controller01 network_interface=eno5 api_interface=eno4 neutron_external_interface=eno3 kolla_external_vip_interface=eno3
controller02 network_interface=eno5 api_interface=eno4 neutron_external_interface=eno3 kolla_external_vip_interface=eno3
controller03 network_interface=eno2 api_interface=eno3 neutron_external_interface=eno4 kolla_external_vip_interface=eno4
		
[storage]
controller01 network_interface=eno5 api_interface=eno4 neutron_external_interface=eno3 kolla_external_vip_interface=eno3
controller02 network_interface=eno5 api_interface=eno4 neutron_external_interface=eno3 kolla_external_vip_interface=eno3
controller03 network_interface=eno2 api_interface=eno3 neutron_external_interface=eno4 kolla_external_vip_interface=eno4

 

   4.2 Kolla 파일 설정(globals.yml)

$ vim /etc/kolla/global.yml

kolla_base_distro: "centos"                           ### OS 선택
kolla_install_type: "binary"                          ### type 선택
openstack_release: "stein"                            ### Openstack 설치 버전
kolla_internal_vip_address: "172.16.0.X"             ### 내부 VIP 작성
kolla_external_vip_address: "192.168.10.X"           ### 외부 VIP 작성
enable_mariadb: "yes"                                 ### DB 설치 확인
enable_cinder: "yes"                                  ### NFS 설정 사용
enable_cinder_backend_nfs: "yes"                      ### NFS 설정 사용
enable_neutron_lbaas: “no”                            ### 아래 참고
enable_openvswitch: "no"                              ### OVS 설치 안함

### enable_neutron_lbaas는 Stein버전에서는 사용하지 않으며, Octavia로 프로젝트 변경되었기에 “no”로 설정 및 Openstack 설치 이후 Octavia 추가 설정, 설치를 진행한다.

### 그 외 다른 프로젝트 설치 및 사용 요구시 추가적으로 yes 변경하여 사용
enable_aodh: “yes”
enable_ceilometer: “yes”
enable_gnocchi: “yes”
enable_magnum: “yes”
enable_murano: “yes”
### 등등….

### MariaDB를 Docker가 아닌 서버 직접 설치시 다음과 같이 설정한다.
enable_mariadb: "no"
enable_external_mariadb_load_balancer: yes
database_address: "서버 내부 VIP"
database_password: openstack                 ### DB root 계정 암호

 

   4.3 Kolla 파일 설정(password.yml)

$ kolla-genpwd

$ vim /etc/kolla/passwords.yml
database_password: openstack                          ### DB 접속 암호 설정
keystone_admin_password: openstack                    ### horizon 암호
cinder_database_password: openstack                   
glance_database_password: openstack
heat_database_password: openstack
horizon_database_password: openstack
magnum_database_password: openstack                   
mariadb_backup_database_password: openstack
neutron_database_password: openstack                  
nova_api_database_password: openstack                 
nova_database_password: openstack                     
placement_database_password: openstack

 

5. Kolla 및 Openstack 설치

  5.1 프레임워크 설치

$ kolla-ansible -i ~/inventory/multinode bootstrap-servers         **//multimode의** **경우** 

### 위 명령을 실행하여 [baremetal : Install apt packages]에서 docker-engine 에러가 발생할 경우, 도커가 제대로 설치 되지 않은 것이므로 docker를 완전히 삭제한다.

$ rpm -e docker-engine

$ rm -fR /var/lib/docker

### 도커가 완전히 삭제되었는지 확인하고, 남아 있다면 pip uninstall 을 통해 지운다.

$ pip list | grep docker

$ rpm -qa | grep docker

$ kolla-ansible -i ~/inventory/multinode prechecks

### 바로 ‘4.3 Openstack 배포’를 해도 자동으로 이미지 받아서 설치함

$ kolla-ansible  -i ~/inventory/multinode pull

### 바로 ‘4.3 Openstack 배포’를 해도 자동으로 이미지 받아서 설치함

$ kolla-ansible -i ~/inventory/multinode deploy

### Openstack Container 모두 삭제 명령어

$ kolla-ansible -i ~/inventory/multinode destroy --yes-i-really-really-mean-it

 

   5.2 Openstack CLI Install

$ kolla-ansible post-deploy

$ pip install python-openstackclient

$ openstack --version

$ source /etc/kolla/admin-openrc.sh

 

   5.3 기본 세팅 파일

$ mkdir -p /etc/kolla/config/nfs_shares
NASIP:/cinder


### Controller 서버
$ vim /etc/fstab
NASIP:/cinder         /var/lib/docker/volumes/cinder/_data/mnt/fa11b71731c13623a6035ee69402eaf3       nfs defaults,_netdev 0 0
NASIP:/cinder_backup  /var/lib/docker/volumes/cinder/_data/backup/62683d11af0ec8d6492d59f5e90e1e80    nfs defaults,_netdev 0 0
NASIP:/glance         /var/lib/docker/volumes/glance/_data/images                                     nfs defaults,_netdev 0 0
		
### Compute 서버

$ vim /etc/fstab
NASIP:/nova /var/lib/docker/volumes/nova_compute/_data/instances nfs defaults,_netdev 0 0
반응형
반응형

1. Opensetack OVN Network란?

* OVN ?

Open Virutal Network(OVN) 약어로 OVS(Open vSwitch) 팀에서 개바한 오픈소스이다.

기존 OVS의 기능을 보완하고 가상 L2, L3 오버레이, 보안그룹, DHCP 서비스와 같은 가상 네트워크 추상화를 제공한다.

가상화 플랫폼(VM, Container)에서 모든 유형의 워크로드에 대한 가상 네트워킹 기능에 대한 접근 방식 제공한다.

 

* Openstack OVN Network Architecture

OVN은 OVS기능과 함께 수천개의 하이퍼바이저로 확장할 수 있는 높은 확장성과 향상된 성능, 안정성을 보여준다.

1) OVN database

 (1) ovn-northbound db(ovn_nb_db) 

  - OVN ML2 플러그인의 논리적 네트워크 구성이 저장되는곳으로 컨트롤러 노드에서 실행됨

 (2) ovn-northd(ovn_northd)

  - 논리적 네트워크 요소를 논리적 데이터 경로 흐름으로 변환하고 OVN SB DB에 전달하며 컨트롤러 노드에서 실행됨

 (3) ovn-southbound db(ovn_sb_db)

  - 변호나된 논리적 데이터 경로 흐름을 저장하고 컨트롤러 노드에서 실행됨

 (4) ovn-controller(ovn_controller)

  - ovn_sb_db와 연결하고 OVS 역할을 하여 네트워크 트래픽을 제어하고 모니터링하며 컴퓨트노드에서 실행됨

 (5) ovn-meta-agent(neutron_ovn_metadata_agent

  - API 요청을 프록시하는데 사용되는 OVS 인터페이스, 네트워크 네임스페이스 및 HAProxy 프로세스 관리하기 위한 Haproxy 인스턴스 생성.

 (6) ovs database(openvswitch_db)

  - ovn_nb_db, ovn_sb_db를 호스팅하고 ovs-vswitchd와 상호작용하여 ovs db를 호스팅하는 역할

 

Openstack OVN

 

 

 

 

Openstack Kolla-ansible OVN Network

Openstack OVN 굿어시 네트워크 구성은 위와 같다고 보며 각각 호스트에 다음 서비스들이 설치가 된다.

Controller : ovn_northd, ovn_controller, openvswitch_vswitchd, openvswitch_db. ovn_sb_db, ovn_nb_db

Compute : neutron_ovn_metadata_agent, ovn_controller, openvswitch_vswitchd, openvswitch_db

설치 이후 각각 br-ex, br-int 브릿지가 생성되며 br-ex는 외부 네트워크, br-int는 내부 통신을 위해 설정된다.

(참조 : kolla-ansible xena 설치 가이드)

 

Openstack Network 생성시 tap~(숫자) 테넌트 네트워크가 생성되며 이것은 br-int 브릿지의 tab 디바이스가 생성된다.

외부 통신을 위해 라우터 생성하고 네트워크 연결시 br-int와 br-ex 연결 되며 컴퓨트 노드에 ovnmeta-fdea8b75-ba46-4e51-a85c-9f599c92cffb 이라는 네임스페이스가 생성되어 테넌트 관리를 할 수있다.

 

 

 

 

 

 

 

 

https://docs.openstack.org/networking-ovn/pike/admin/refarch/refarch.html

반응형
반응형

1. Linux Local Repostiroy 설정 방법

* lcoal repository 설정 방법

1) 외부 통신 가능한 환경인 경우

$ yum install createrepo -y

$ mkdir /test

$ createrepo /test

$ vim /etc/yum.repo.d/test.repo

[test]
name=test
baseurl=file:///root/test/
gpgcheck=0
enabled=1

$ yum clean all

$ yum repolist

 

2) 외부 통신이 불가능한 경우

* 업로드된 파일 해당 서버 업로드

$ rpm -ivh *.rpm

$ mkdir /test

$ createrepo /test

$ vim /etc/yum.repo.d/test.repo

[test]
name=test
baseurl=file:///root/test/
gpgcheck=0
enabled=1

$ yum clean all

$ yum repolist

 

반응형

'Linux' 카테고리의 다른 글

Ceph Install Guide Using Ceph-Deploy  (0) 2023.08.10
Linux SSH 접속시 암호 늦게뜨는것 해결하기  (0) 2023.08.10
wget 하위 디렉토리 다운로드  (0) 2023.08.10
Virtual Machine vs Container  (0) 2023.08.10
Ceph Storage 노드 추가  (0) 2023.08.10
반응형

1. Linux SSH 접속 시 로그인/암호 늦게 뜨는것(딜레이) 해결하기

어느순간 Linux 서버 접근하려니 계정 입력 이후 암호 입력창이 늦게 나온다.

이런 경우 다음과 같은 서버의 설정이로 일부 해결할 수 있다.

  • SSH 접속시 암호 입력창 늦게 뜨는것 확인하기
$ vim /etc/ssh/sshd_config

# yes를 no로 바꾸기
GSSAPIAuthentication no 

# 주석을 해제하고 no로 설정
UseDNS no 

$ service sshd restart

 

 

반응형

'Linux' 카테고리의 다른 글

Ceph Install Guide Using Ceph-Deploy  (0) 2023.08.10
Linux local repository 설정 방법  (0) 2023.08.10
wget 하위 디렉토리 다운로드  (0) 2023.08.10
Virtual Machine vs Container  (0) 2023.08.10
Ceph Storage 노드 추가  (0) 2023.08.10

+ Recent posts