openstack

KVM & openstack

짱구는굿 2023. 9. 1. 10:16

type1 하이퍼바이저 = native 방식 = 베어메탈 = 전가상화

type2 하이퍼바이저 = hosted 방식 = 반가상화

 

 

 

 

VM과 비교했을 때 컨테이너는 하이퍼바이저와 게스트 OS가 필요하지 않으므로 더 가볍습니다. 일반적으로 컨테이너에는 OS가  포함되지 않아 크기가 수십 MB에 불과하고, 운영체제 부팅이 필요 없으므로 서비스를 시작하는 시간도 짧습니다. 크기가 작기 때문에 컨테이너 복제와 배포에도 용이합니다

 

 

 

 

 

- hyper-V - win에서 출동 발생하기 때문에 꺼주기 

 

 

-accelerate 3D graphics 활성화 - vmware 사용시 껴주기
-vmware ; intel VT enable
-vcpu 4 / core 1
  --> lscpu
       cat /proc/cpuinfo --- vcpu 4 / core 1 확인 명령어

 

 

----- cpu 확인 명령어 -----

lscpu
lscpu | grep Virtualization
grep --color -Ew 'svm|vmx|lm' /proc/cpuinfo
grep -E 'svm|vmx' /proc/cpuinfo 

 




Thread (s) per core - Hyperthreading 상태 ( 1=기본 / 2 = Hyperthreading ON)

core(s) per socker - CPU 1개당 core 수

Socker(s) - 실제 장착된 CPU 
x

 

----- kvm 관련 패키지 설치 ----- 

apt update
apt-get install qemu-kvm libvirt-daemon-system libvirt-clients virtinst bridge-utils cpu-checker -y
ㄴ qemu-kvm : KVM 하이퍼바이저에 대한 하드웨어 에뮬레이션을 제공
ㄴ libvirt : 자동화
ㄴ virtinst : libvirt의shell

systemctl restart(enable/satuts) libvirtd

apt-get install virt-manager -y   
virt-manager -y : 사용하기 쉬운 GUI 인터페이스와 libvirt를 통해 가상 머신을 관리하기위한 명령 줄 유틸리티

libosinfo-bin -> 가상 디스크
 

설치 완료 후 사용자 권한으로 가상머신을 생성, 삭제 등 관리하기 위해서 권한 추가
adduser $UESR kvm

가상 시스템을 생성하고 관리하려면 사용자를 "libvirt" 및 "kvm" 그룹에 추가해야 합니다. 이렇게 하려면 다음을 입력합니다
usermod -aG libvirt $USER
usermod -aG kvm $USER

kvm-ok
knm --version

 

 

apt-get install vsftpd -y
ftp 접속
dir
get ...

 



win에서 폴더에 이미지 넣기




알 FTP 서버 생성

vmware에서 알FTP 접속 후 dir로 파일 확인 
그리고 get으로 받을 파일 다운로드 하기

 

-- 이미지 권한 부여 --

chmod 777 alpine-virt-3.18.2-x86_64.iso

chmod 777 ko_windows_7_enterprise_k_with_sp1_x64_dvd_u_677728.iso

 

1. bridge 설치
2. 이미치 VM 설치 -> 알파인 & win7

nm-connection-editor

 

네트워크 생성
 
 

 

-- 연결 확인 명령어 --

nmcli con show

 

 

-- 안된다면 --

작업1
nano /usr/lib/NetworkManager/conf.d/10-globally-managed-devices.conf

[keyfile]
unmanaged-devices=*,except:type:wifi,except:type:gsm,except:type:cdma,except:type:ethernet

작업 2
nano /etc/NetworkManager/NetworkManager.conf  
managed=false  --> true 로 변경 
reboot 

 

eth-br0 생성

nmcli con up eth-br0
nmcli con show

 

 




virt-manager 접속 

로컬설치매체



root
setup-alpine




1) Select keyboard layout [none] : kr

2) Select variants : kr-kr104

3) Enter system hostname [localhost] : kvmalpine

4) Which one do you want to initialize? [eth0] : 엔터

5) Do you want to do any manual network configuration [no] : [기본값] : 엔터
- 네트워크 설정은 수정하지 않고 일단 기본설정으로 진행

 엔터

6) Changing password for root
New password : 12345
Retype password : 12345
- 비밀번호 설정

7) Which timezone are you in? ('?' for list) [UTC] : Asia/Seoul
- ?를 타이핑하면 리스트가 쭉 나온다
 

8) HTTP/FTP proxy URL? [none] : [기본값] : 엔터
- 일단 설정하지않음 

9) Enter mirror number (1- ?) or URl to add ( or r/f/e/done) [f] :  f
- 가장 빠른 미러주소 선택 

user1

10) Which SSH server? ('openssh', 'dropbear' or 'none') [openssh] : [기본값] : 엔터
- openssh 설치

11) Which NTP client to run? ('busybox', 'openntpd', 'chrony' or 'none') [chrony] : [기본값] :엔터
 
12) Which disk(s) would you like to use? (or '?' for help or 'none') [none] :  vda
- ?를 입력해서 사용가능한 디스크 목록을 보고 알파인 리눅스를 설치할 디스크 명을 입력해주자
 
13) How would you like to use it? ('sys', 'data', 'lvm' or '?' for help) [?] : sys
- 디스크에 직접 설치하기위해 sys 입력  
 
파일 시스템이나 데이터 삭제 등으로 warning이 뜰 수도 있는데 모두 y를 입력해 주면 설치가 진행된다!


reboot
root/12345
free -m
ping 8.8.8.8

 
같은 방법으로 win7도 설치를 해준다

 

openstack

fedora 계열 paskstack
데미안 계열 devstack 

6개월 간격으로 버전 업 A ~ Q : 지원 종료 / R ~ X : Unmaintenance / Y ~ Z and Antelope : Extended Maintenance Bobcat : maintenance

추천 Ubuntu 22.04 LTS / ram 24G / HDD 300G / bridge mode 1개 nat mode 1개 (192.168.0.0/24 제외) default 설치 내용 Horizon, Keystone, Nova, Glance, Neutron, Placement, Cinder

 

 

https://docs.openstack.org/devstack/latest/    <- 참조

 

DevStack — DevStack documentation

DevStack DevStack is a series of extensible scripts used to quickly bring up a complete OpenStack environment based on the latest versions of everything from git master. It is used interactively as a development environment and as the basis for much of the

docs.openstack.org

 

https://docs.openstack.org/devstack/latest/guides/devstack-with-octavia.html <- 참조  

 

Devstack with Octavia Load Balancing — DevStack documentation

Devstack with Octavia Load Balancing Starting with the OpenStack Pike release, Octavia is now a standalone service providing load balancing services for OpenStack. This guide will show you how to create a devstack with Octavia API enabled. Phase 1: Create

docs.openstack.org

 

Devstack2-ubuntu-22.04.2-desktop-amd64.iso
cpu 2/2  ram 12G  HDD 300G  VMnet10  NAT  VT-x 

 

 

apt-get update -y && apt-get dist-upgrade -t
apt-get -y install apache2
apt-get -y install python3 python3-pip git

useradd -s /bin/bash -d /opt/stack -m stack
chmod +x /opt/stack
echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack

sudo -u stack -i
git clone https://opendev.org/openstack/devstack 
cd devstack/
sudo git checkout

sudo chown -R stack.stack /opt/stack/devstack
nano /opt/stack/devstack/local.conf

 

[[local|localrc]]
# ===== BEGIN localrc =====
HOST_IP=192.168.2.15  ## 자신의 ip주소
DATABASE_PASSWORD=openstack
ADMIN_PASSWORD=openstack
SERVICE_PASSWORD=openstack
SERVICE_TOKEN=openstack
RABBIT_PASSWORD=openstack

PUBLIC_INTERFACE=ens33   ## 
FLOATING_RANGE=192.168.2.0/24
PUBLIC_NETWORK_GATEWAY=192.168.2.2     
Q_FLOATING_ALLOCATION_POOL=start=192.168.2.100,end=192.168.2.150

GIT_BASE=https://opendev.org

LOGFILE=$DEST/logs/stack.sh.log
VERBOSE=True
LOG_COLOR=True
enable_service rabbit
enable_plugin neutron $GIT_BASE/openstack/neutron


enable_service q-qos
enable_service placement-api placement-client


enable_plugin octavia $GIT_BASE/openstack/octavia master
enable_plugin octavia-dashboard $GIT_BASE/openstack/octavia-dashboard
enable_plugin ovn-octavia-provider $GIT_BASE/openstack/ovn-octavia-provider
enable_plugin octavia-tempest-plugin $GIT_BASE/openstack/octavia-tempest-plugin
enable_service octavia o-api o-cw o-hm o-hk o-da

disable_service c-api c-vol c-sch
enable_service tempest
# ===== END localrc =====

 

 

설치
./stack.sh
취소
./ustack.sh
./clean.sh