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
Posted by 까만핀치
,