CentOS7에서 KVM을 이용해서 가상머신을 만들어보고 정리해둔다.
개념이 없어서 어렵다... ㅠㅠ
1. KVM 관련 패키지 설치
# yum install qemu-kvm libvirt virt-install bridge-utils virt-manager
* GUI 환경을 설치하지 않았거나 그래픽 환경으로 관리할 생각이 없다면 "virt-manager"은 제외한다
2. KVM 모듈 확인
# lsmod | grep kvm
kvm_intel 162153 6
kvm 525259 1 kvm_intel
3. libvirtd 실행 및 확인
# systemctl start libvirtd
# systemctl enable libvirtd
# systemctl list-unit-files | grep libvirtd
libvirtd.service enabled
4. KVM을 설치하면 기본적으로 NAT 네트워크가 활성화 되어 있다. NAT 대신 bridge 방식을 사용하기 위해 구성
1) 따로 지정하지 않으면 dhcp로 구성 되므로 수동으로 ip를 잡으려면 br0에 ip 넣는 작업이 추가 되어야 한다.
2) 기존의 물리 인터페이스(enp3s0)는 nmcli 에서 연결을 삭제한 다음 br0의 slave로 다시 생성한다
# nmcli c
이름 UUID 유형 장치
virbr0 4bc07844-5b6f-479d-b36e-ca7ca0ac2ba5 bridge virbr0
enp3s0 800c743a-3001-48b6-add9-89718a09cd88 802-3-ethernet enp3s0
virbr0-nic 01dd1662-6eb1-4948-bdf1-4b058fdcd65b generic virbr0-nic
# nmcli c add type bridge autoconnect yes con-name br0 ifname br0
연결 'br0' (dc3073bb-e072-4347-a5f7-679b45a3c0ff)이 성공적으로 추가되었습니다.
# nmcli c delete enp3s0
Connection 'enp3s0' (800c743a-3001-48b6-add9-89718a09cd88) successfully deleted.
# nmcli c add type bridge-slave autoconnect yes con-name enp3s0 ifname enp3s0 master br0
연결 'enp3s0' (2c19479e-82ba-4105-b5a7-3abafd48eb16)이 성공적으로 추가되었습니다.
# nmcli c
이름 UUID 유형 장치
virbr0 c9c5ee20-c915-4841-8bd0-ec91b723a173 bridge virbr0
enp3s0 2c19479e-82ba-4105-b5a7-3abafd48eb16 802-3-ethernet enp3s0
br0 dc3073bb-e072-4347-a5f7-679b45a3c0ff bridge br0
# systemctl restart NetworkManager
# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP qlen 1000
link/ether f8:a9:63:52:56:45 brd ff:ff:ff:ff:ff:ff
3: wlp4s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN qlen 1000
link/ether 80:86:f2:a8:8a:68 brd ff:ff:ff:ff:ff:ff
5: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN
link/ether 52:54:00:21:e7:50 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
6: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 500
link/ether 52:54:00:21:e7:50 brd ff:ff:ff:ff:ff:ff
23: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether f8:a9:63:52:56:45 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.31/24 brd 192.168.0.255 scope global dynamic br0
valid_lft 1447sec preferred_lft 1447sec
inet6 fe80::faa9:63ff:fe52:5645/64 scope link
valid_lft forever preferred_lft forever
5. VM 이미지가 저장될 저장 공간을 만들어준다.
# mkdir /VM
6. virt-install 을 이용해서 가상 머신을 설치한다.
# virt-install \
--name centos67 \
--ram 1024 \
--disk path=/VM/centos67.img,size=10 \
--vcpus 1 \
--os-type linux \
--network bridge=br0 \
--graphics none \
--console pty,target_type=serial \
--location /root/CentOS-6.7-i386-bin-DVD1.iso \
--extra-args 'console=ttyS0,115200n8 serial'
--name centos67 # 가상 머신의 이름
--ram 1024 # 메모리 MB 단위
--disk path=/VM/centos67.img,size=10 # 가상 머신이 설치 될 이미지 위치, 크기는 GB 단위
--vcpus 1 # CPU 갯수
--os-type linux # OS 타입
--network bridge=br0 # 네트워크 지정
--graphics none # 그래픽 환경 사용 여부
--console pty,target_type=serial # 콘솔 지정
--location /root/CentOS-6.7-i386-bin-DVD1.iso
--extra-args 'console=ttyS0,115200n8 serial'
그래픽을 사용시 graphics를 spice나 vnc로 지정하고 console 부분과 extra-args를 바꿔야 되는데 애시당초 그래픽 환경이면 "가상 머신 관리자"를 실행해서 구성하자. 그래픽이 되는데 뭐하러 저걸 타이핑 하고 있겠는가......
7. CLI 환경에서 OS 설치 / 설치가 완료 되면 로그인 창이 나온다
8. 주요 명령어들
1) 가상 머신에서 나오기
[root@centos67 ~] # Ctrl + ] 누르기
[root@hostos ~] #
2) 가상 머신 시작
# virsh start centos67
도메인 centos67가 시작됨
3) 가상 머신 종료
# virsh shutdown centos67
도메인 centos67가 종료됨
4) 가상 머신 재부팅
# virsh reboot centos67
도메인 centos67가 재부팅됨
5) 가상 머신 강제 종료
# virsh destroy centos67
centos67 도메인 강제 종료
-- 재부팅이나 종료 명령이 먹지 않으면 acpid 패키지를 설치 해 준다. (설치 후 acpid 서비스 실행 확인)
6) 가상 머신 저장 -- 스냅샷 같은건데.. 명령을 실행하면 가상 머신이 일시 정지 되고 나서 자동 종료 됨
# virsh save centos67 centos67_save1
Domain centos67 saved to centos67_save1
7) 가상 머신 복원 -- 복원 후 자동으로 가상 머신이 실행 된다
# virsh restore centos67_save1
centos67_save1에서 도메인이 복구됨
-- 저장 후 복원을 하니 파일 시스템이 깨져버렸다.. 왜??????
8) 가상 머신 삭제 -- 가상 머신 종료 후 사용 / 확인 과정 없이 바로 삭제 됨 / 가상 머신 이미지는 직접 삭제 해야 함
# virsh undefine centos67
도메인 centos67는 정의되지 않음
# rm /VM/centos67.img
rm: remove 일반 파일 `/VM/centos67.img'? y
휴.. 대충 된 듯!
minimal 이미지로 설치 할때 그래픽 모드로 실행하기
# virt-install --name node1 --ram 1024 --disk path=/VM/node1.img,size=5 --vcpus 1 --os-type linux --network bridge=br0 --graphics spice --cdrom /root/CentOS-6.7-i386-minimal.iso --video qxl --channel spicevmc
근데 이렇게 해서 실행하면 virt-viewer 패키지를 설치 하라고 한다.
혹시 가상 머신 관리자를 설치 했다면 거기서 화면을 볼 수 있다.
'Server Engineer > Linux' 카테고리의 다른 글
ZFS on CentOS 6 - 컴파일 설치.2 (0) | 2016.06.02 |
---|---|
ZFS on CentOS 6 - 컴파일 설치 (0) | 2016.06.02 |
ZFS on CentOS 6 - Yum 설치 (0) | 2016.06.02 |
CentOS7 bonding (0) | 2016.04.22 |
RHEL6 초간단 Yum 구성 (0) | 2016.02.16 |