manjaro安裝kvm

安装kvm

  • 环境检查
# 检查硬件是否支持虚拟化
LC_ALL=C lscpu | grep Virtualization
# 检查内核是否已经包含了支持虚拟化所必须的模块
zgrep CONFIG_KVM /proc/config.gz
# 确定模块是否已经加载
lsmod | grep kvm
# 这里输出中需要包含 virtio
lsmod | 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 = Never
Server = 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的,启用内核模块为kvm_intel,如果是amd的需要改为kvm_amd:
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. 打开软件点击‘加号’来创建一个虚拟机


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


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


    image.png
  4. 设置内存及cpu数


    image.png
  5. 这一步是创建磁盘,选择下面这个一步,可以自定义磁盘路径,默认的磁盘路径:/var/lib/libvirt/images
image.png
  1. 点击manage之后能看到这个界面,首先自顶一个磁盘的存储路径,点击左边下方的加号。


    image.png
  2. name和target Path可以自定义


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


    image.png
  4. 创建虚拟机磁盘,点击finish完成。


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


    image.png

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


    image.png

使用配置文件创建虚拟机

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

  • 通过已经有的虚拟机生成新的模板
sudo virsh dumpxml k8s-master>/home/momi/kvm/kubernetes-cluster/template/k8s-node01.xml
  • 编辑修改模板文件
    修改模板名称
<name>k8s-node01</name>
* 修改uuid 使用命令:uuidgen
<uuid>06931581-29c4-4715-b2ab-19dc68d7c151</uuid>
  • 修改磁盘路径
<disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='/home/momi/kvm/kubernetes-cluster/k8s-node01.qcow2' index='2'/>
...
</disk>
  • 修改网卡的mac地址
# 使用下面命令生成mac地址
openssl rand -hex 6 | sed 's/../&\:/g; s/:$//'
# 修改文件中网卡信息的mac地址
<interface type='network'>
    <mac address='52:54:00:ca:0d:14'/>
...
</interface>
  • 通过模板定义虚拟机
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

克隆虚拟机

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

# 查询所有vm
sudo 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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容