Cloud

OpenStack 이미지 만들기

arisu1000 2015. 3. 23. 09:00

오픈스택에서 VM을 만들려면 VM 생성할때 이용할 VM 이미지가 있어야 함.

지원하는 이미 형식
- Raw
기본 이미지 형식, KVM과 Xen 에서 지원함.
dd 명령어를 이용해서 블럭 디바이스형태로 붙일 수도 있음.

- qcow2(QEMU copy-on-write version 2)
KVM에서 주로 사용하는 형식.
raw형식보다 용량이 작음.
스냅샷 지원.

- AMI/AKI/ARI
아마존 EC2에서 지원하는 형식
AMI(Amazon Machine Image) : raw형식의 vm 이미지
AKI (Amazon Kernel Image) : 하이퍼바이저가 이미지를 부팅하기위한 커널 파일.
ARI (Amazon Ramdisk Image) : 부팅할때 마운트되는 램디스트(ramdisk) 파일.

- UEC tarball
UEC (Ubuntu Enterprise Cloud) : AMI, AKI, ARI파일 등을 gzip으로 압축한 tar 파일.

- VMDK(Virtual Machine Disk)
VMware의 ESXi 하이퍼바이저에서 사용하는 형식

- VDI
VirtualBox에서 사용하는 이미지.
오픈스택에서 직접 지원하지 않기 때문에 오픈스택에서 사용하려면 지원가능한 다른 형식으로 변경해야 함.

- VHD
마이크로소프트 Hyper-V 에서 사용하는 이미지

- VHDX
마이크로소프트 서버 2012에서 사용하는 이미지. VHD에 대용량 디스크 지원, 파워 나갔을때 데이터 보호등의 기능이 추가됨.

- OVF(Open Virtualization Format)
Distributed Management Task Force (DMTF) 그룹에서 정의한 VM 패키징 형식. OVF 패키지는 하나이상의 이미지 파일들을 포함하고, .ovf XML 메타데이터 파일이 VM에 대한 정보를 가지고 있음.

- ISO
읽기전용 ISO 9660 디스크 이미지.
주로 CD나 DVD등에서 사용한다.


오픈스택 리눅스 이미지에서 필요한 준비사항들
우선 cloud-init 패키지가 설치되어 있어야 함.

- 디스크 파티션과 루트 파티션의 크기 조정이 가능해야 함.(cloud-init)

- MAC 주소가 하드코드되어 있으면 안됨
/etc/udev/rules.d/70-persistent-net.rules 을 내용이 없는 빈 파일로 대체.
/lib/udev/rules.d/75-persistent-net-generator.rules 을 내용이 없는 빈 파일로 대체.
페도라 기반 이미지의 경우 /etc/sysconfig/network-scripts/ifcfg-eth0에서 HWADDR을 삭제.

- SSH 서버가 실행되고 있어야 함.

- 방화벽이 해제되어 있어야 함.
인스턴스내부의 방화벽은 내리고 오픈스택 security group을 이용하는걸 권장.
인스턴스 내부에 방화벽이 떠 있으면 네트워크 이슈 처리하기가 복잡해짐.

- ssh 공개키를 이용해서 인스턴스에 접속해야 함.(cloud-init)

- user data와 다른 메타데이터를 처리해야 함.(cloud-init)

- 이미지는 부트 로그를 콘솔에 써야 함.

- 리눅스 커널에서 반가상화 Xen을 지원해야 함.

OS별 이미지 다운로드

이미지 생성 도구
- Oz
KVM을 이용하는 파이썬 CLI 도구.

서로다른 하이퍼바이저간에 vm 이미지를 생성하는 CLI 도구

페도라, RHEL, CentOS 이미지를 만들 수 있음.

vagrant 박스 빌드할때 주로 쓰임. KVM 이미지를 빌드할때도 쓰임

설정 하나로 여러 플랫폼용 이미지를 만들때 사용.

여러 클라우드 공급자에 이미지를 빌딩, 변환, 업로드하는걸 자동화하는 도구.
벡엔드로는 Oz를 이용.


참고