과정 요약
1. QEMU + KVM 에뮬레이터를 실행할 수 있는 환경(나는 컴퓨트 노드에서 생성함)에서 QEMU +KVM을 이용해서 가상머신(qcow2타입의 디스크 이미지를 가진)을 생성
*qcow2 : 가상의 하드디스크(이미지) 파일 (vmdk 같은 거)
2. 가상머신에 운영체제 설치 및 cpid, cloud-init, cloud-utils-growpart
3. 부팅시 DHCP로 네트워크 설정이 되도록 설정
4. 추가적인 설정하기 (zeroconf 설정, 부팅 환경설정)
5. 확인(오픈스택에서 이미지 등록하고 가상머신 생성, QEMU + KVM로 수동으로 가상머신 생성)
가상머신 이미지 형식
aki | 아마존 커널 이미지 |
ami | 아마존 머신 이미지 |
ari | 아마존 RAM 디스크 이미지 |
iso | 광학 디스크나 CD-ROM의 데이터 콘텐츠를 지원하는 아카이브 포맷 |
qcow2 | QEMU 에뮬레이터가 지원하는 포맷 |
raw | 구조화되지 않은 디스크 포맷 |
vdi VirtualBox | 모니터와 QEMU 에뮬레이터가 지원하는 포맷 |
vmdk | 일반적인 디스크 포맷으로 여러 가상 머신 노미터가 지원, VMware |
(1) virt 설치
dnf module install virt
dnf install virt-install virt-viewer libguestfs-tools
(2) 기본 이미지 준비
CentOS http://cloud.centos.org/centos/7/images/
CirrOS http://download.cirros-cloud.net/
우분투 http://cloud-images.ubuntu.com/
CentOS-7-x86_64-GenericCloud.qcow2 # 컴퓨트 노드에다가 다운 받았다. (다른 컴퓨터에서 해도 상관은 없다)
(3) KVM 가상 네트워크 생성 및 확인
virsh net-start default
virsh net-list
(4) KVM 가상머신 생성 // 명령어로
virt-install --name [가상머신 이름] --ram 1024 \ --disk [qcow2 파일 이름 포함한 절대 경로],format=qcow2 \ --network network=default \ --graphics vnc,listen=0.0.0.0 --noautoconsole \ --os-type=linux --os-variant=
[사용가능한 OS 버전] \ --boot hd
virsh list 하면 내가 설치한 가상머신목록이 뜬다
클라우드용 커스텀 이미지 관리
(1) virt-manager 설치
dnf -y install virt-manager
(2) 본체 윈도우에서 putty x11 설정 (Xming Server가 다운돼 있어야함)
리눅스에서 dnf -y install xauth 다운로드 본체 putty x11 실행 -> SSH -> X11 -> Enable X11 Forwarding 체크 -> X display location : localhost:0 설정 후 접속 리눅스에서 virt-manager 입력
이렇게 vmware를 사용하는 것 처럼 내가 생성한 가상머신이 보인다.
로그인을 ssh-key를 추가해줘야 한다.
ssh-keygen 으로 키파일 생성.
dnf -y install libguestfs-tools
virt-sysprep -a [이미지파일] --ssh-inject [사용자이름]:file:[공개키파일위치]
virt-sysprep -a /virt/CentOS-7-x86_64-GenericCloud.qcow2 --ssh-inject root:file:/root/.ssh/id_rsa.pub
virsh net-dhcp-leases default #우리가 설정한 default란 네트워크에서 dhcp 타입으로 접속
ssh [사용자]@[IP] -i [개인키파일 위치]
클라우드용 이미지 만들기(vmware로 따지면 vmdk파일을 만드는 것)
(1) qcow2 이미지(디스크) 파일 생성
qemu-img create -f qcow2 /virt/centos7.qcow2 20G //20G 가상 이미지 디스크 생성( 가상머신이 들어갈 곳)
-빈 하드디스크를 만들어 준 것과 같다.(그다음은 운영체제를 설치해줘야한다)
(2) ISO로 가상머신 생성
- 생성한 하드디스크에 가상머신을 생성(가상으로 운영체제 설치, 사양 정의)
virt-install --name centos7 --ram 1024 \ // RAM 1G설정
--disk /virt/centos7.qcow2,format=qcow2 \
--network network=default \ // 생성한 네트워크 default 설정
--graphics vnc,listen=0.0.0.0 --noautoconsole \ //vnc : 화면을 그래픽 환경으로 볼 수 있게.
--os-type=linux --os-variant=centos7.0 \
--location=/virt/CentOS-7-x86_64-Minimal-2009.iso //이미지 파일 경로를 잘 설정 해줘야 한다.
(3) 가상머신에서 설치 진행
- putty x11로 실행해서 설치 진행(vm ware로 접속해서 OS 설치하는 것과 같은 과정)
Xmin 화면으로 보니 잘 설치가 된 것을 볼 수 있다.
(4) 클라우드용 이미지로 만들기 작업
[1] acpid 설치 및 자동 실행 설정(하이퍼바이저가 가상머신을 재부팅 또는 종료할 수 있게 해주는 프로그램 플러그인)
yum install acpid
systemctl start acpid
systemctl enable acpid
[2] cloud-init 설치 및 설정 (ssh 공개키를 가상머신에 넣도록 도와주는 프로그램)
yum install cloud-init
설정파일 /etc/cloud/cloud.cfg
[3] cloud-utils-growpart (하이퍼바이저가 가상머신의 하드디스크 용량을 늘렸다 줄였다 할 수 있게 해주는 프로그램) yum install cloud-utils-growpart
'OpenStack' 카테고리의 다른 글
오픈스택 잘 안 될시 문제 사항 (0) | 2021.05.12 |
---|---|
OpenStack 설치(Packstack) (0) | 2021.05.10 |