kvm虚拟机_manjaro 安装 强大的kvm虚拟机

安装kvm

· 环境检查

# 检查硬件是否支持虚拟化

LC_ALL=C lscpu | grep Virtualization

# 检查内核是否已经包含了支持虚拟化所必须的模块

zgrep CONFIG_KVM /proc/config.gz

# 确定模块是否已经加载

lsmod | grep kvm

# 这里输出中需要包含

virtiolsmod | grep virtio

# 没有 virtio 时执行

sudo modprobe virtio

· 安装软件安装需要的软件包

yay -S virt-manager qemu libvirt ebtables dnsmasq bridge-utils openbsd-netcat

· 安装软件libguestfs on Arch Linux / Manjaro

添加源

$ sudo vim /etc/pacman.conf

# Should have below lines

[archlinuxfr]SigLevel = NeverServer = http://repo.archlinux.fr/$arch

安装

sudo pacman -Syy

yay -S --noconfirm --needed libguestfs

virt-manager, 图形化的管理界面

qemu QEMU 软件,提供 qemu-img 等命令

libvirt 提供管理虚拟机、存储、网络的功能

ebtables 桥接网络管理,用于 default NAT 网络

dnsmasq DHCP DNS 服务,用于 default NAT 网络

bridge-utils 桥接网络管理,用于桥接网络

openbsd-netcat 用于通过 SSH 管理

libguestfs 用于重置或消除虚拟机的配置以获得全新的OS安装状态

· 启动服务执行以下命令启动所需服务:

# 启动虚拟机管理后台服务

sudo systemctl start libvirtd

# 启动 default NAT 网络sudo virsh net-start default

· 设置开机启动

sudo systemctl enable libvirtd.service

sudo systemctl start libvirtd.service

· 使用普通账号使用kvm(此方法问题多,在命令行下还是加上sudo去执行吧)

sudo vim /etc/libvirt/libvirtd.conf

# 将UNIX域套接字组所有权设置为libvirt(第85行):

unix_sock_group = "libvirt"

# 设置R/W套接字的UNIX套接字权限(第102行):

unix_sock_rw_perms = "0770"

#将你的用户帐户添加到libvirt组:

sudo usermod -a -G libvirt $(whoami)

# newgrp 命令使当前普通用户登入到这个群组

newgrp libvirt

# 重启libvirt守护进程:

sudo systemctl restart libvirtd.service

· 开启嵌套虚拟化嵌套虚拟化功能使你可以在VM中运行虚拟机,我的CPU是intel的,启用内核模块为kvmintel,如果是amd的需要改为kvmamd:

sudo modprobe -r kvm_intel

sudo modprobe kvm_intel nested=1

要使此配置持久,请运行:

echo "options kvm-intel nested=1" | sudo tee /etc/modprobe.d/kvm-intel.conf

确认嵌套虚拟化设置为是:

systool -m kvm_intel -v | grep nested

nested = "Y"

nested_early_check = "N"

cat /sys/module/kvm_intel/parameters/nested

Y

创建虚拟机

创建虚拟机可以通过图形化界面进行创建,也可以通过模板文件快速创建vm,如果需要大批量的创建vm那么通过模板文件进行创建将非常快。网上有很多模板文件的解释说明,可以参考。但是由于每个环境都不一样,直接拿过来的模板吧文件无法直接使用,需要修改很多地方,这时候可以通过图形化界面来创建一个vm,再生成一个模板文件,在此基础上进行修改就不会有问题;

通过Virtual Machine Manager创建vm

1. 打开软件点击'加号'来创建一个虚拟机

7ffcd91948d53d1002e37c1cd781ee35.png

打开vmm

2. 选择第一个iso,点击下一步

37f02395bf76e0b56d1a38c9eb8b3bc3.png

3. 第一个选框中选择本地的iso系统盘,在下面的类型中需要输入才能显示不同的操作系统类型,这里输入c之后能模糊查询到相关的系统类型,选择centos8。

b1de2eefd540d28bdf2a55819390c0a1.png

4. 设置内存及cpu数

d4dcfa7af46087f1d533a0e8ab640b29.png

5. 这一步是创建磁盘,选择下面这个一步,可以自定义磁盘路径,默认的磁盘路径:/var/lib/libvirt/images

90e90522d1ecd9af90e6712167061504.png

6. 点击manage之后能看到这个界面,首先自定一个磁盘的存储路径,点击左边下方的加号。

d348b64e4e14c2f1af2f1685b994c16a.png

7. name和target Path可以自定义

2267b6f0882effa252412993479029ec.png

8. 创建好之后,左边列表上选择刚刚创建的路径,右边点击volumes旁边的加号,创建虚拟磁盘。

2017d6eed9265965d60ea948331a6231.png

9. 创建虚拟机磁盘,点击finish完成。

dcca687d63997ba8f9578c39a6b7c831.png

10. 上一步创建完成之后,然后选择磁盘,点击下一步。

b29d18ee686ac0cb95bf0683c9f8a7db.png

11.这一步选择虚拟网卡,然后点击finish。到这一步就完成了所有的创建过程。接着就是虚拟机的安装过程了。

76b9bd8c9c8e92ff7ac57456c9526ad1.png

使用配置文件创建虚拟机

配置文件可以通过图形化界面创建而生成,配置文件路径:/etc/libvirt/qemu/

· 通过已经有的虚拟机生成新的模板

sudo virsh dumpxml k8s-master>/home/momi/kvm/kubernetes-cluster/template/k8s-node01.xml

· 编辑修改模板文件修改模板名称

k8s-node01

* 修改uuid 使用命令:uuidgen

06931581-29c4-4715-b2ab-19dc68d7c151

· 修改磁盘路径

...

· 修改网卡的mac地址

# 使用下面命令生成mac地址

openssl rand -hex 6 | sed 's/../&:/g; s/:$//'

# 修改文件中网卡信息的mac地址

...

· 通过模板定义虚拟机

sudo virsh define ./k8s-node02.xml

Domain k8s-node02 defined from ./k8s-node02.xml

sudo virsh list --all

Id Name State

-----------------------------

2 k8s-master paused

- k8s-node01 shut off

- k8s-node02 shut off

· 通过console登录虚拟机

# 为了可以通过virsh console 登录虚拟机需要对虚拟机进行设置,登录虚拟机后台执行如下命令

grubby --update-kernel=ALL --args="console=ttyS0"

# 执行之后,重启

reboot

# 登录,console后面需要输入已经启动的虚拟机的id,通过virsh list查询

sudo virsh console 4

克隆虚拟机

克隆虚拟机,可以避免手动来修改这个配置信息通过使用镜像克隆虚拟机

# 查询所有

vmsudo virsh list --all

# 停止需要进行克隆的虚拟机

sudo virsh stop k8s-master

# 克隆虚拟机

sudo virt-clone --connect qemu:///system --original k8s-master --name k8s-node01 --file /home/momi/kvm/kubernetes-cluster/k8s-node01.qcow2

重置虚拟机

# 使用virt-sysprep 命令时如果报错需要进行升级

sudo update-libguestfs-appliance

# 使用下面命令重置虚拟机,并设置主机名密码

sudo virt-sysprep -v -x -d k8s-node01 --hostname k8s-node01

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值