In the previous post we have created KVM virtual machine using the Virtual Machine Manager GUI. In this post we will look at command line tools which we can use for administration of KVM virtual machines. We will see how to check installed KVM guests, start or shutdown KVM guest, installation of the guest. At many times we are in situations where we do not have the X11 (Graphical) environment. In such case command line KVM administration tools comes handy.
- To install a virtual machine through command line use “virt-install”
virt-install \
--name TESTER1 \
--ram 500 \
--vcpus=2 \
--network network=default \
--os-variant RHEL6
--name TESTER1 \
--ram 500 \
--vcpus=2 \
--network network=default \
--os-variant RHEL6
- To clone a virtual guest use “virt-clone”
# virt-clone --original TESTER1 --name TESTER2 --file /var/lib/libvirt/images/TESTER2.img --mac 08:00:27:B7:08:9F
Note: If you have problems while starting network of cloned virtual machine or getting error like “Device eth0 does not seem to be present, delaying initialization” please check this post.
- To check currently installed KVM guests use “virsh list --all command”
# virsh list –all
Id Name State
----------------------------------------------------
18 TESTER3 running
19 TESTER1 running
- TESTER2 shut off
Id Name State
----------------------------------------------------
18 TESTER3 running
19 TESTER1 running
- TESTER2 shut off
- Use virt-inspector to show the version of the OS, the kernel version, what drivers are installed, mount point details, etc.
# virt-inspector DOMAIN
- To check cpu and memory utilization of KVM user “virt-top”
# virt-top
virt-top 14:49:49 - x86_64 2/2CPU 3400MHz 1751MB
3 domains, 2 active, 2 running, 0 sleeping, 0 paused, 1 inactive D:0 O:0 X:0
CPU: 1.5% Mem: 1536 MB (1536 MB by guests)
ID S RDRQ WRRQ RXBY TXBY %CPU %MEM TIME NAME
19 R 0 0 12K 0 1.1 29.0 7:14.45 TESTER1
18 R 0 0 184 0 0.3 58.0 2:39.18 TESTER3
- (TESTER2)
virt-top 14:49:49 - x86_64 2/2CPU 3400MHz 1751MB
3 domains, 2 active, 2 running, 0 sleeping, 0 paused, 1 inactive D:0 O:0 X:0
CPU: 1.5% Mem: 1536 MB (1536 MB by guests)
ID S RDRQ WRRQ RXBY TXBY %CPU %MEM TIME NAME
19 R 0 0 12K 0 1.1 29.0 7:14.45 TESTER1
18 R 0 0 184 0 0.3 58.0 2:39.18 TESTER3
- (TESTER2)
- To check directory contents of a guest KVM machine use “virt-ls –l –a KVM_guest_image_file directory”
# virt-ls -l -a /Virtual/TESTER1.img /root
total 80
dr-xr-x---. 3 root root 4096 Jun 28 05:21 .
dr-xr-xr-x. 25 root root 4096 Jun 28 07:19 ..
-rw------- 1 root root 420 Jun 28 09:17 .bash_history
-rw-r--r--. 1 root root 18 May 20 2009 .bash_logout
-rw-r--r--. 1 root root 176 May 20 2009 .bash_profile
-rw-r--r--. 1 root root 176 Sep 23 2004 .bashrc
-rw-r--r--. 1 root root 100 Sep 23 2004 .cshrc
drwx------ 2 root root 4096 Jun 24 05:22 .ssh
-rw-r--r--. 1 root root 129 Dec 4 2004 .tcshrc
-rw-------. 1 root root 1364 Jun 24 04:40 anaconda-ks.cfg
-rw-r--r--. 1 root root 26876 Jun 24 04:39 install.log
-rw-r--r--. 1 root root 7572 Jun 24 04:38 install.log.syslog
total 80
dr-xr-x---. 3 root root 4096 Jun 28 05:21 .
dr-xr-xr-x. 25 root root 4096 Jun 28 07:19 ..
-rw------- 1 root root 420 Jun 28 09:17 .bash_history
-rw-r--r--. 1 root root 18 May 20 2009 .bash_logout
-rw-r--r--. 1 root root 176 May 20 2009 .bash_profile
-rw-r--r--. 1 root root 176 Sep 23 2004 .bashrc
-rw-r--r--. 1 root root 100 Sep 23 2004 .cshrc
drwx------ 2 root root 4096 Jun 24 05:22 .ssh
-rw-r--r--. 1 root root 129 Dec 4 2004 .tcshrc
-rw-------. 1 root root 1364 Jun 24 04:40 anaconda-ks.cfg
-rw-r--r--. 1 root root 26876 Jun 24 04:39 install.log
-rw-r--r--. 1 root root 7572 Jun 24 04:38 install.log.syslog
- To cat a file of KVM guest use “virt-cat –d DOMAIN filename”
# virt-cat -d TESTER1 /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=TESTER1
NETWORKING=yes
HOSTNAME=TESTER1
- To check the mount points utilization of a KVM guest from host use “virt-df –h –d DOMAIN”
# virt-df -h -d TESTER1
Filesystem Size Used Available Use%
TESTER1:/dev/sda1 193M 28M 155M 15%
TESTER1:/dev/OSVG/lvroot 7.7G 1.7G 5.6G 23%
Filesystem Size Used Available Use%
TESTER1:/dev/sda1 193M 28M 155M 15%
TESTER1:/dev/OSVG/lvroot 7.7G 1.7G 5.6G 23%
- To find partitions, filesystem, LVM of KVM guest use “virt-filesystems -d DOMAIN
# virt-filesystems -d TEST-LINUX1 --long --all
Name Type VFS Label MBR Size Parent
/dev/sda1 filesystem ext4 - - 524288000 -
/dev/VolGroup/lv_root filesystem ext4 - - 10242490368 -
/dev/VolGroup/lv_swap filesystem swap - - 2113929216 -
/dev/VolGroup/lv_root lv - - - 10242490368 /dev/VolGroup
/dev/VolGroup/lv_swap lv - - - 2113929216 /dev/VolGroup
/dev/VolGroup vg - - - 12356419584 -
/dev/sda2 pv - - - 12356419584 -
/dev/sda1 partition - - 83 524288000 /dev/sda
/dev/sda2 partition - - 8e 12359565312 /dev/sda
/dev/sda device - - - 12884901888 -
Name Type VFS Label MBR Size Parent
/dev/sda1 filesystem ext4 - - 524288000 -
/dev/VolGroup/lv_root filesystem ext4 - - 10242490368 -
/dev/VolGroup/lv_swap filesystem swap - - 2113929216 -
/dev/VolGroup/lv_root lv - - - 10242490368 /dev/VolGroup
/dev/VolGroup/lv_swap lv - - - 2113929216 /dev/VolGroup
/dev/VolGroup vg - - - 12356419584 -
/dev/sda2 pv - - - 12356419584 -
/dev/sda1 partition - - 83 524288000 /dev/sda
/dev/sda2 partition - - 8e 12359565312 /dev/sda
/dev/sda device - - - 12884901888 -
- To copy file/directory from KVM guest to host use “virt-copy-out -d DOMAIN /file|dir localdir”
# virt-copy-out -d TESTER1 /root/testfile.txt /root
- To copy file/directory from host to KVM guest use “virt-copy-in -d domain file|dir /destination”
# virt-copy-in -d TESTER1 /root/testerfile1.txt /root/
Note: Using "virt-copy-in" on live virtual machines can be dangerous, potentially causing disk corruption. The virtual machine must be shutdown before you use this command.
- To edit file of KVM guest use “virt-edit -d DOMAIN filename”
# virt-edit -b .orig -d TEST-LINUX1 /root/testfile.txt
Use –b option to make a backup of original file.
Note: Using "virt-edit" on live virtual machines can be dangerous, potentially causing disk corruption. The virtual machine must be shutdown before you use this command.
There are lots of other command line tools to administer KVM virtual machines on RHEL6.
For any queries post comments.