网站首页 > 资源文章 正文
在云和容器今天,基础的虚拟架构更先得重要了。而其中基于Linux内核的开放虚拟机KVM更是最重要虚拟化基础架构。本文虫虫将带领大家一起实例学习利用KVN构建自己的虚拟平台。其中包括:基于Centos 7.6安装KVM、组网、配置VNC、安装webvirtcloud进行KVM虚拟平台管理,安装kalil inux虚拟机实例。
KVM安装
开启虚拟化加速
KVM依赖CPU虚拟加速,需要确保机器已经开启,可以通过linux命令查看该信息:
grep -E 'svm |vmx' /proc/cpuinfo
如果显示如下:
上面表示已经启动了Intel的虚拟化加速。其中vmx表示Intel CPU的虚拟技术Intel Virtualization Technology, Intel VT-x。svm是AMD CPU的虚拟技术AMD Secure Virtual Machine, AMD SVM
如果你的终端执行后没有输出,你需要重启电脑进入BIOS开启用虚拟化。开机按键进入BIOS:
自攒机看主板:华硕按F8、Intel按F12,其他主板按ESC、F11或F12;
笔记本:联想ThinkPad系列按F1,其他品牌按F2;
品牌台式机按品牌分, Dell按ESC,其他按F12;
进入BIOS后,进入Configuration中设置开启:
AMD CPU:
安装KVM和相关的软件组件
我们所有安装都在Centos字符终端下,不会安装任何图形工具来管理虚拟机。
安装KVM需要安装一下相关软件包:
yum install qemu-kvm qemu-img libvirt virt-install libvirt-client libvirt-python
yum安装时候会自动安装必须的许多依赖项。安装完成后,可以通过以下命令检查:
lsmod | grep kvm
如果安装无误,输入应该显示类似如下:
配置网络
默认情况下,KVM会在虚拟机管理程序上设置名为"virbr0"的网络接口。它为为虚拟机创建一个网络,该网络使用NAT(网络地址转换)访问它所驻留的网络之外的资源,在本例中使用的是192.168.122.0/24。
为了虚拟机能有单独的网络,我们需要配置桥接网络:
cd /etc/sysconfig/network-scripts/
cp ifcfg-eno1 ifcfg-bridge0
注意加重部分根据实际情况换成实际的网卡名
修改ifcfg-eno1配置为:
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
NAME= eno1
DEVICE= eno1
ONBOOT=yes
BRIDGE= bridge0
修改ifcfg-bridge0配置为:
TYPE=Bridge
BOOTPROTO=static
DEFROUTE=yes
NAME= bridge0
DEVICE= bridge0
ONBOOT=yes
IPADDR=10.0.15.240
GATEWAY=10.0.15.254
DNS=114.114.114.114
注意网络按照实际情况修改,网卡ifcfg-eno1中的ip地址信息配置删除,新增加"BRIDGE= bridge0",而在ifcfg-bridge0中配置ip地址等信息。
然后重启网络:
systemctl restart network
配置VNC
修改监听地址
在KVM创建虚拟机时候virt-install添加使用'-vnc'选项时,就会在localhost(127.0.0.1)地址启动一个监听。为了远程访问,我们需要修改vnc的默认配置。我们修改/etc/libvirt/qemu.conf,查找:
# vnc_listen ="0.0.0.0"
去掉改语句前面的#注释符号,使得该配置生效,这样就可以远程反问vnc了。
防火墙开放端口
相应我们需要在防火墙开放规则,开启vnc的端口。VNC的默认端口范围从TCP 5900开始,往下顺延,一台虚拟机占用一个端口。我们在防火墙上开启TCP 5900 -> 6100段端口就足矣。
firewall-cmd --zone = public --permanent --add-port = 5900-6100/tcp
如果使用iptables:
iptables -A INPUT -p tcp -m state --state NEW --dport 6000:6500 -j ACCEPT
添加后通过运行来验证我们的规则条目
firewall-cmd --zone = public --permanent --list-ports
iptables使用
iptabes iptables -n -L
构建虚拟机
准备安装镜像
构建虚拟机之前需要先下载好安装ISO镜像,本例子中我们选择国内镜像站,下载kali最新安装包镜像kali-linux-light-2019.2-amd64.iso。
下载完成后,使用
sha1sum kali-linux-light-2019.2- amd64.iso 并比对镜像站提供的哈希值做校对,确保安装包无误。
生成虚拟机
OK,万事具备只欠东风,生成虚拟机也很容易只需要用virt-install命令即可:
virt-install --name kali --ram 1024 --file=/var/lib/libvirt/images/kali.img --file-size=10 --vnc --cdrom=kali-linux-2019.2-amd64.iso
在应该看到以下内容:
上面提示机器已经创建成功,需要我们完成具体安装,这时候就需要VNC介入开启安装窗口了。
VNC安装kali linux
可以通过命令行
virsh vncdisplay kali
可以获得该台虚拟机vnc监听端口:
本例中为:
:1
启动安装界面
这样我们就可以通过VNC客户端(需要先下载)连接到虚拟机管理程序,比如本例中为10.0.15.240:5900 (或者10.0.15.240:1)
上面已经显示了kali安装界面,我们直接选择图形安装,然后按照正常安装步骤安装即可。
问题解决
安装步骤中在安装引导一步中报错:
需要在安装包设置一步骤,选择网络镜像时候选择否
安装后登陆中界面乱码
通过dpkg-reconfigure locales"。选择locals选项选中en_US.UTF-8和zh_CN.UTF-8,确定后,将en_US.UTF-8选为默认。
安装中文字库
apt install xfonts-intl-chinese
apt install ttf-wqy-microhei
KVM常见管理命令
KVM的虚拟机都是可以使用命令行管理的,此处我们简单的总结下常见命令。
virsh list:查看启动中的虚拟机
virsh list --all:列出所有虚拟机
irsh start name:启动虚拟机
virsh shutdown name:关闭虚拟机
virsh destroy name:强制关闭虚拟机
virsh suspend name:挂起虚拟机(暂停,保存运行状态)
virsh resume name:恢复挂起的虚拟机
virsh edit name:编辑虚拟机的xml配置文件
virsh undefine name:删除创建的KVM虚拟机
virsh snapshot-create name 创建快照
virsh snapshot-revert name 恢复快照
webvirtcloud管理KVM平台
虽然完全可以基于命令工具来管理KVM,但是不够直接方便。为此我们最后介绍一个通过Web管理KVM虚拟平台的系webvirtcloud。关于这个软件目前介绍还比较少,他是WebVirtMgr软件的升级版本,WebVirtMgr网上有很多文档介绍,大家可以参考学习。
安装
webvirtcloud直接安装比较费劲,为了便捷直接使用容器化方式安装。
拉取镜像:
docker pull mplx/docker-webvirtcloud:latest
docker启动:
docker run -d \
-p 8080:80 \
-v /srv/webvirtcloud/data:/srv/webvirtcloud/data \
-v /srv/webvirtcloud/ssh:/var/www/.ssh \
--name webvirtcloud \
mplx/docker-webvirtcloud:latest
compose方式启动,配置如下
启动后远程浏览器访问,默认用户密码是admin admin
宿主机SSH证书登陆
为了管理KVM虚拟平台需要在宿主机上创建ssh证书链接配置。首先创建一个KVM实例管理用户webvirtmgr。
adduser webvirtmgr
配置证书登陆
mkdir /home/webvirtmgr/.ssh
cd /srv/webvirtcloud/ssh/
这个/srv/webvirtcloud/ssh目录为我们管理系统容器中映射来的目录
cp id_rsa.pub /home/webvirtmgr/.ssh/authorized_keys
chmod 0600 /home/webvirtmgr/.ssh/authorized_keys
chown -R webvirtmgr:webvirtmgr /home/webvirtmgr/.ssh
将该用户添加到libvirtd管理组
usermod -a -G libvirtd webvirtmgr
为libvirt添加一条polkit策略
vim /etc/polkit-1/localauthority/50-local.d/50-libvirt-remote-access.pkla
内容如下:
[libvirt group Management Access]
Identity=unix-group:libvirt
Action=org.libvirt.unix.manage
ResultAny=yes
ResultInactive=yes
ResultActive=yes
重启libvirtd服务
systemctl restarts libvirtd.service
注意上述步奏很重要,如果配置不对,则下一步添加实例时候会报错:
添加实例
首选我们需要添加KVM示例,默认支持4种方式,由于我们的管理系统是在容器中,我们使用SSH链接方式:
添加实例名称、IP地址,用户后点击ADD,就会添加了实例
实例管理
添加实例成功后就可以对实例进行配置,包括虚拟机(Instances)、存储、网络,网卡、NWFilters和密钥等
添加主机
选择instances标签页,点击右上"+"就可添加主机,可以使用默认6中配置,也可以custom自定义配置或者通过模版和XML文件设置配置。
主机管理
创建一个主机后,可以点击主机,进行主机管理界面如下图:
可以进行开关机Power、访问、resize扩容、镜像、设置、统计和销毁主机的操作。注意所有改变主机配置的操作,都必须在关机后才能进行。
实例监控
webvirtcloud也提供了从KVM实例到每一台虚拟主机的监控信息。
日志记录
webvirtcloud同样也提供了实例到主机层次的操作日志记录。
总结
KVM是一个非常强大的虚拟化程序,是现代虚拟化解决方案的骨干之一。本文我们通实例详细介绍了KVM的安装配置,最后成功安装了kali linux虚拟机。还介绍了一款基于Web管理强大KVM 虚拟平台管理软件,通过这些我们可以自建和管理个性化虚拟化基础架构。
猜你喜欢
- 2024-09-10 KVM 虚拟化基本原理(kvm虚拟化管理系统)
- 2024-09-10 KVM虚拟化技术:从入门到实战,带你解锁新技能!
- 2024-09-10 虚拟化技术KVM的搭建(kvm虚拟化技术基础与实践)
- 2024-09-10 从0开始教你认识虚拟化及KVM技术——云计算学习必备
- 2024-09-10 KVM切换器是什么?(kvm切换器工作原理)
- 2024-09-10 常规KVM和数字kvm切换器区别(kvm切换器工作原理)
- 2024-09-10 在deepin操作系统上使用KVM虚拟机
- 2024-09-10 解决KVM切换器故障问题的6个方法,学会了,受用终身
- 2024-09-10 虚拟化xen、kvm、vmware、hyper-v等虚拟化技术的比较
- 2024-09-10 Kvm虚拟网络配置(在kvm中,虚拟网卡连接物理网络的方式)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 电脑显示器花屏 (79)
- 403 forbidden (65)
- linux怎么查看系统版本 (54)
- 补码运算 (63)
- 缓存服务器 (61)
- 定时重启 (59)
- plsql developer (73)
- 对话框打开时命令无法执行 (61)
- excel数据透视表 (72)
- oracle认证 (56)
- 网页不能复制 (84)
- photoshop外挂滤镜 (58)
- 网页无法复制粘贴 (55)
- vmware workstation 7 1 3 (78)
- jdk 64位下载 (65)
- phpstudy 2013 (66)
- 卡通形象生成 (55)
- psd模板免费下载 (67)
- shift (58)
- localhost打不开 (58)
- 检测代理服务器设置 (55)
- frequency (66)
- indesign教程 (55)
- 运行命令大全 (61)
- ping exe (64)
本文暂时没有评论,来添加一个吧(●'◡'●)