文章目次
一、主流的捏造化方案简介
二、查察内核是否支持KVM捏造化
三、关闭Selinux
四、关闭防火墙
五、设置网桥br0和静态IP
六、安装GNOME桌面情况
七、安装KVM及所需组件
八、修改sshd 设置文件
九、启动libvirt并设置开机自启动
十、创建镜像目次和磁盘文件目次
十一、创建捏造机的磁盘文件
十二、创建捏造机
十三、设置捏造机的网络
十四、KVM捏造机常见管理下令(在宿主机中实行)
十五、常见问题
硬件情况:
- 品牌:宝德
- CPU: HUAWEI Kunpeng(华为鲲鹏) 920 5250 96核
- CPU厂商:HiSilicon(海思)
- 架构:aarch64
- 内存:439GB
- 磁盘:1.7TB
软件情况:
- 操作系统:已安装华为欧拉OpenEuler 22.03 LTS
一、主流的捏造化方案简介
- ESXi:在私有云范畴,目前VMware ESXi是领导者。ESXi中,全部捏造化功能都在内核实现。(部署流程:服务器物理机--->基于rufus和ESXi制作USB启动盘--->利用USB启动盘安装ESXi--->创建捏造机--->安装捏造机操作系统)
- Xen:Xen内核仅实现CPU与内存捏造化,IO捏造化与调理管来由Domain0实现。
- KVM:KVM是当前最主流的开源的服务器捏造化技术,已徐徐替换另一开源捏造化技术Xen。KVM目前已支持X86、ARM等平台。KVM内核实现了CPU和内存的捏造化,借助QEMU实现IO设备(网卡、磁盘等)的捏造化,通过Linux历程调理器实现VM管理。(部署流程:服务器物理机--->基于rufus和操作系统镜像制作USB启动盘--->利用USB启动盘安装物理机操作系统--->安装KVM--->创建捏造机--->安装捏造机操作系统)
KVM捏造化 二、查察内核是否支持KVM捏造化
针对ARM架构服务器,若/dev/kvm 和 /sys/module/kvm恣意一个不存在,都说明内核不支持KVM捏造化。
- [root@localhost ~]# ls -l /dev/kvm
- crw-rw----+ 1 root kvm 10, 232 May 6 09:18 /dev/kvm
- [root@localhost ~]# ls /sys/module/kvm
- parameters uevent
复制代码 扩展说明:
针对X86服务器,查察是否支持KVM捏造化的下令如下:
- #若是intel cpu,命令执行结果是vmx;若是amd cpu,命令执行结果是svm;
- [root@localhost ~]# egrep -o 'vmx|svm' /proc/cpuinfo
复制代码 三、关闭Selinux
- [root@localhost ~]# sed -i 's/enforcing/disabled/' /etc/selinux/config
复制代码
- [root@localhost ~]# setenforce 0
复制代码
- [root@localhost ~]# getenforce
复制代码 四、关闭防火墙
说明:为了顺遂完成KVM捏造化情况的安装部署,先关闭防火墙。待安装部署完成后,再启用防火墙,并进行相关设置(具体设置可以详见:Linux系统中设置防火墙-CSDN博客)。
- [root@localhost ~]# systemctl stop firewalld
复制代码
- [root@localhost ~]# systemctl disable firewalld
复制代码
- [root@localhost ~]# systemctl stop iptables
复制代码
- [root@localhost ~]# systemctl disable iptables
复制代码 五、设置网桥br0和静态IP
留意:每台物理服务器的下令实行结果以及必要设置的静态IP大概不一样,请基于实际情况来进行设置。
- [root@localhost ~]# ip ad
- 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
- 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: enp125s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
- link/ether b0:4f:a6:3d:44:9c brd ff:ff:ff:ff:ff:ff
- 3: enp125s0f1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
- link/ether b0:4f:a6:3d:44:9d brd ff:ff:ff:ff:ff:ff
- 4: enp125s0f2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
- link/ether b0:4f:a6:3d:44:9e brd ff:ff:ff:ff:ff:ff
- 5: enp125s0f3: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
- link/ether b0:4f:a6:3d:44:9f brd ff:ff:ff:ff:ff:ff
复制代码 从下令实行结果可知,当前处于UP状态的网卡是enp125s0f0(如有多个网卡都处于state UP,则任选一个来进行设置。留意,不要选lo,这是127.0.0.1专用的)
- 基于网卡enp125s0f0的网络设置文件,复制天生网桥br0的网络设置文件
- [root@localhost ~]# cp /etc/sysconfig/network-scripts/ifcfg-enp125s0f0 \
- /etc/sysconfig/network-scripts/ifcfg-br0
复制代码
- 修改网桥br0的网络设置文件,其中必要设置宿主机的静态IP
- [root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-br0
- #Type使用桥接
- TYPE=Bridge
- #IP分配协议改为静态分配
- BOOTPROTO=static
- #修改NAME为br0
- NAME=br0
- #修改DEVICE为br0
- DEVICE=br0
- ONBOOT=yes
- #宿主机的静态IP
- IPADDR=192.168.112.56
- #子网掩码
- PREFIX=24
- #网关
- GATEWAY=192.168.112.1
- #DNS
- DNS1=114.114.114.114
复制代码
- 修改处于UP状态的网卡enp125s0f0的网络设置文件
- [root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp125s0f0
- #Type使用Ethernet
- TYPE=Ethernet
- #IP分配协议改为静态分配
- BOOTPROTO=static
- NAME=enp125s0f0
- DEVICE=enp125s0f0
- ONBOOT=yes
- #指定桥接设备为br0
- BRIDGE=br0
复制代码
- #华为openeuler系统使用该命令,其他linux系统可以使用systemctl restart network
- [root@localhost ~]# nmcli con reload; nmcli con up enp125s0f0
复制代码
- ##如果配置成功,会有以下输出:
- [root@localhost ~]# brctl show
- bridge name bridge id STP enabled interfaces
- br0 8000.b04fa63d449c no enp125s0f0
- docker0 8000.0242ca5f6b53 no veth0f04dc2
- veth6148d75
- veth7ee782c
- veth88dc0dd
- vethc335d89
- vethf19fe4a
- virbr0 8000.525400112ec1 yes virbr0-nic
复制代码
- ##修改内核参数
- [root@localhost ~]# vi /etc/sysctl.conf
- net.ipv4.ip_forward=1
- ##执行生效
- ##加载指定的文件配置内核参数,-p后通常接一个文件路径
- ##若为空,默认加载/etc/sysctl.conf中的内核参数
- [root@localhost ~]# sysctl -p
-
- ##显示所有的内核参数
- [root@localhost ~]# sysctl -a
-
- ##若只是临时修改内核参数的值,可以执行如下命令,但是重启后失效
- [root@localhost ~]# net.ipv4.ip_forward=1
-
- ##加载/etc/sysctl.d/目录下所有conf文件(包括/etc/sysctl.conf文件)中的内核参数
- [root@localhost ~]# sysctl --system
复制代码 六、安装GNOME桌面情况
GNOME简介
- GNOME是运行在类Unix操作系统中最常用桌面情况,是一个功能完善、操作简单,界面友爱,集利用和开发为一身的桌面情况,是GNU计划的正式桌面。
- 从用户的角度看,GNOME是一个集成桌面情况和应用步伐的套件。从开发者的角度看,它是一个应用步伐开发框架(由数目浩繁的实用函数库组成)。即利用户不运行GNOME桌面情况,用GNOME编写的应用步伐也可以正常运行。
- GNOME既包含文件管理器,应用商店,文本编辑器等基础软件,也包含系统采样分析,系统日记,软件工程IDE,web浏览器,简洁捏造机监视器,开发者文档浏览器等高级应用和工具。
- ##更新系统
- [root@localhost ~]# yum update -y
- ##安装字库
- [root@localhost ~]# yum install dejavu-fonts liberation-fonts \
- gnu-*-fonts google-*-fonts -y
- ##安装Xorg
- [root@localhost ~]# yum install xorg-* -y
- ##这可能会安装很多没用的包,可以使用下面的命令安装必要的xorg相关包
- [root@localhost ~]# yum install xorg-x11-apps xorg-x11-drivers xorg-x11-drv-ati \
- xorg-x11-drv-dummy xorg-x11-drv-evdev xorg-x11-drv-fbdev xorg-x11-drv-intel \
- xorg-x11-drv-libinput xorg-x11-drv-nouveau xorg-x11-drv-qxl \
- xorg-x11-drv-synaptics-legacy xorg-x11-drv-v4l xorg-x11-drv-vesa \
- xorg-x11-drv-vmware xorg-x11-drv-wacom xorg-x11-fonts xorg-x11-fonts-others \
- xorg-x11-font-utils xorg-x11-server xorg-x11-server-utils xorg-x11-server-Xephyr \
- xorg-x11-server-Xspice xorg-x11-util-macros xorg-x11-utils xorg-x11-xauth \
- xorg-x11-xbitmaps xorg-x11-xinit xorg-x11-xkb-utils -y
- ##安装GNOME及组件
- [root@localhost ~]# yum install adwaita-icon-theme atk atkmm at-spi2-atk \
- at-spi2-core baobab \
- abattis-cantarell-fonts cheese clutter clutter-gst3 clutter-gtk cogl dconf \
- dconf-editor devhelp eog epiphany evince evolution-data-server file-roller folks \
- gcab gcr gdk-pixbuf2 gdm gedit geocode-glib gfbgraph gjs glib2 glibmm24 \
- glib-networking gmime30 gnome-autoar gnome-backgrounds gnome-bluetooth \
- gnome-builder gnome-calculator gnome-calendar gnome-characters \
- gnome-clocks gnome-color-manager gnome-contacts gnome-control-center \
- gnome-desktop3 gnome-disk-utility gnome-font-viewer gnome-getting-started-docs \
- gnome-initial-setup gnome-keyring gnome-logs gnome-menus gnome-music \
- gnome-online-accounts gnome-online-miners gnome-photos gnome-remote-desktop \
- gnome-screenshot gnome-session gnome-settings-daemon gnome-shell \
- gnome-shell-extensions gnome-software gnome-system-monitor gnome-terminal \
- gnome-tour gnome-user-docs gnome-user-share gnome-video-effects \
- gnome-weather gobject-introspection gom grilo grilo-plugins \
- gsettings-desktop-schemas gsound gspell gssdp gtk3 gtk4 gtk-doc gtkmm30 \
- gtksourceview4 gtk-vnc2 gupnp gupnp-av gupnp-dlna gvfs json-glib libchamplain \
- libdazzle libgdata libgee libgnomekbd libgsf libgtop2 libgweather libgxps libhandy \
- libmediaart libnma libnotify libpeas librsvg2 libsecret libsigc++20 libsoup \
- mm-common mutter nautilus orca pango pangomm libphodav python3-pyatspi \
- python3-gobject rest rygel simple-scan sushi sysprof tepl totem totem-pl-parser \
- tracker3 tracker3-miners vala vte291 yelp yelp-tools \
- yelp-xsl zenity -y
- ##启动gdm显示管理器
- [root@localhost ~]# systemctl enable gdm
- ##设置系统默认以图形界面登录
- [root@localhost ~]# systemctl set-default graphical.target
- ##查询当前开机运行级别
- [root@localhost ~]# systemctl get-default
- ##重启生效
- [root@localhost ~]# reboot
复制代码 七、安装KVM及所需组件
说明:如果宿主机没有安装图形桌面,则无需安装virt-manager。virt-manager(Virtual Machine Manager)是图形化虚机管理器,类似于Esxi的Web Console管理页面。
- ##安装KVM及所需组件
- [root@localhost ~]# yum install virt-manager virt-install bridge-utils \
- libvirt qemu-kvm virt-viewer libcanberra-gtk2 libiscsi \
- dbus-devel virt-clone dejavu-lgc-sans-fonts qemu-img \
- libvirt-client virt-v2v libguestfs-tools xorg-x11-xauth -y
- ##查看virt-manager版本号
- [root@localhost ~]# virt-manager --version
- 2.1.0
- ##查看virsh版本号
- [root@localhost ~]# virsh --version
- 6.2.0
- ##查看qemu-img版本号
- [root@localhost ~]# qemu-img --version
- qemu-img version 6.2.0 (qemu-6.2.0-86.oe2203)
- ##查看virt-install版本号
- [root@localhost ~]# virt-install --version
- 2.1.0
复制代码 八、修改sshd 设置文件
- [root@localhost ~]# sudo vi /etc/ssh/sshd_config
- ##确保该配置文件有如下内容
- X11Forwarding yes
- X11DisplayOffset 10
- X11UseLocalhost no
- PermitTunnel yes
- ##重启 sshd 服务
- [root@localhost ~]# systemctl restart sshd
复制代码 九、启动libvirt并设置开机自启动
- ##启动
- [root@localhost ~]# systemctl start libvirtd
- ##设置开机自启
- [root@localhost ~]# systemctl enable libvirtd
- ##查看libvirt服务是否启动成功
- ##若服务处于running状态,说明服务启动成功
- ##可以正常使用libvirt提供的virsh命令行工具
- [root@localhost ~]# systemctl status libvirtd
复制代码 十、创建镜像目次和磁盘文件目次
- ##查看物理机磁盘空间
- ##通过df -hT发现/home目录空间最大
- [root@localhost ~]# df -hT
- Filesystem Type Size Used Avail Use% Mounted on
- devtmpfs devtmpfs 4.0M 0 4.0M 0% /dev
- tmpfs tmpfs 220G 0 220G 0% /dev/shm
- tmpfs tmpfs 88G 60M 88G 1% /run
- tmpfs tmpfs 4.0M 0 4.0M 0% /sys/fs/cgroup
- /dev/mapper/openeuler-root ext4 69G 15G 51G 23% /
- tmpfs tmpfs 220G 0 220G 0% /tmp
- /dev/sda2 ext4 974M 204M 704M 23% /boot
- /dev/sda1 vfat 599M 6.0M 593M 2% /boot/efi
- /dev/mapper/openeuler-home ext4 1.7T 174G 1.5T 11% /home
- tmpfs tmpfs 44G 72K 44G 1% /run/user/1003
- ##建立目录用来存放iso镜像文件
- [root@localhost ~]# mkdir /home/iso
- ##建立目录用来存放qcow2磁盘文件
- [root@localhost ~]# mkdir /home/qcow2
复制代码 十一、创建捏造机的磁盘文件
说明:通过下令行方式创建一个捏造机前,必要创建该捏造机的磁盘文件。
- ##进入磁盘文件目录
- [root@localhost ~]# cd /home/qcow2
- ##创建虚拟机的磁盘文件
- ##这里创建了一个名为vm1.qcow2,空间为400GB的动态扩展的qcow2格式的磁盘
- ##这里的400GB只是磁盘的最大值,没有被写入数据前只有不到200KB大小
- [root@localhost ~]# qemu-img create -f qcow2 vm1.qcow2 400G
- Formatting 'vm1.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=429496729600 lazy_refcounts=off refcount_bits=16 cache=writeback
- ##查看磁盘文件vm1.qcow2的卷信息,里面disk size是其实际占用的宿主机磁盘大小
- ##上面的400GB只是磁盘的最大值,这里可以看到,没有被写入数据前只有200KB大小
- [root@localhost ~]# qemu-img info vm1.qcow2
- image: vm1.qcow2
- file format: qcow2
- virtual size: 400 GiB (429496729600 bytes)
- disk size: 200 KiB
- cluster_size: 65536
- Format specific information:
- compat: 1.1
- compression type: zlib
- lazy refcounts: false
- refcount bits: 16
- corrupt: false
- extended l2: false
复制代码 十二、创建捏造机
1)方法一:下令行基于iso镜像文件创建捏造机
- 下载(下载所在:https://www.openeuler.org/zh/download/archive/)适配ARM架构的操作系统镜像openEuler-22.03-LTS-SP1-aarch64-dvd.iso,并上传到/home/iso
- 下令行基于iso镜像文件创建捏造机
- ##创建一个CPU8核、内存16GB、磁盘空间400GB的虚拟机
- [root@localhost ~]# virt-install --name vm1 --ram=16384 --vcpus=8 \
- --location=/home/iso/openEuler-22.03-LTS-SP1-aarch64-dvd.iso \
- --disk path=/home/qcow2/vm1.qcow2,size=400 --bridge=br0 \
- --graphics=none --console=pty,target_type=serial \
- --extra-args="console=ttyAMA0 console=ttyS0" --autostart
复制代码 参数说明:
- --name 指定捏造机的名称
- --ram 指定捏造机的内存大小,单位是MB
- --vcpus 指定分配给捏造机的CPU核数
- --location 指定ISO镜像文件所在的路径,支持利用网络资源路径,也就是说可以利用URL
- --disk path 指定捏造磁盘文件的路径及名称,size 则是指定该磁盘的可用大小,单位是GB
- --bridge 指定利用哪一个桥接网卡,也就是说利用桥接的网络模式
- --graphics 指定是否开启图形,示例如下:
- --graphics none 不利用图形桌面
- --graphics vnc,password=foobar,port=5910,keymap=ja 利用vnc表现图形桌面
- --console 定义终端的属性,target_type 则是定义终端的类型
- --extra-args 定义终端额外的参数
- --autostart 指定捏造机在宿主机开机后自动启动
开始安装,设置语言、时区、安装源、网络、暗码等信息。
- Installation
- 1) [x] Language settings 2) [x] Time settings
- (English (United States)) (Asia/Shanghai timezone)
- 3) [!] Installation source 4) [!] Software selection
- (Processing...) (Processing...)
- 5) [!] Installation Destination 6) [!] Network configuration
- (Processing...) (Not connected)
- 7) [!] Root password 8) [!] User creation
- (Root account is disabled) (No user will be created)
- Please make a selection from the above ['b' to begin installation, 'q' to quit,
- 'r' to refresh]: 5 <=======输入5然后按Enter键,设置安装目录
- Probing storage...
- ================================================================================
- ================================================================================
- Installation Destination
- 1) [x] QEMU HARDDISK: 400 GiB (sda)
- 1 disk selected; 400 GiB capacity; 400 GiB free
- Please make a selection from the above ['c' to continue, 'q' to quit, 'r' to
- refresh]: c <=======输入c继续
- ================================================================================
- ================================================================================
- Partitioning Options
- 1) [ ] Replace Existing Linux system(s)
- 2) [x] Use All Space
- 3) [ ] Use Free Space
- 4) [ ] Manually assign mount points
- Installation requires partitioning of your hard drive. Select what space to use
- for the install target or manually assign mount points.
- Please make a selection from the above ['c' to continue, 'q' to quit, 'r' to
- refresh]: c <=======输入c继续
- ================================================================================
- ================================================================================
- Partition Scheme Options
- 1) [ ] Standard Partition
- 2) [ ] Btrfs
- 3) [x] LVM
- 4) [ ] LVM Thin Provisioning
- Select a partition scheme configuration.
- Please make a selection from the above ['c' to continue, 'q' to quit, 'r' to
- refresh]: 1 <=======输入1然后按Enter键,选择Standard Partition
- ================================================================================
- ================================================================================
- Partition Scheme Options
- 1) [x] Standard Partition
- 2) [ ] Btrfs
- 3) [ ] LVM
- 4) [ ] LVM Thin Provisioning
- Select a partition scheme configuration.
- Please make a selection from the above ['c' to continue, 'q' to quit, 'r' to
- refresh]: c <=======输入c继续
- ================================================================================
- ================================================================================
- Installation
- 1) [x] Language settings 2) [x] Time settings
- (English (United States)) (Asia/Shanghai timezone)
- 3) [x] Installation source 4) [x] Software selection
- (Local media) (Minimal Install)
- 5) [x] Installation Destination 6) [ ] Network configuration
- (Automatic partitioning (Not connected)
- selected)
- 7) [!] Root password 8) [!] User creation
- (Root account is disabled) (No user will be created)
- Please make a selection from the above ['b' to begin installation, 'q' to quit,
- 'r' to refresh]: 7 <=======输入7然后按Enter键,设置root账号的密码
- ================================================================================
- ================================================================================
- Root password
- 1) [ ] SM3 encrypt
- Please make a selection from the above ['c' to continue, 'q' to quit, 'r' to
- refresh]: 1 <=======输入1然后按Enter键,选择SM3加密方式
- ================================================================================
- ================================================================================
- Root password
- 1) [x] SM3 encrypt
- Please make a selection from the above ['c' to continue, 'q' to quit, 'r' to
- refresh]: c <=======输入c继续
- ================================================================================
- ================================================================================
- Root password
- Please select new root password. You will have to type it twice.
- Password: <=======输入密码然后按Enter键,这里不会反显
- Password (confirm): <=======再次输入确认密码,然后按Enter键,这里也不会反显
- ================================================================================
- ================================================================================
- Installation
- 1) [x] Language settings 2) [x] Time settings
- (English (United States)) (Asia/Shanghai timezone)
- 3) [x] Installation source 4) [x] Software selection
- (Local media) (Minimal Install)
- 5) [x] Installation Destination 6) [ ] Network configuration
- (Automatic partitioning (Not connected)
- selected)
- 7) [x] Root password 8) [ ] User creation
- (Root password is set) (No user will be created)
- Please make a selection from the above ['b' to begin installation, 'q' to quit,
- 'r' to refresh]: b <=======输入b然后按Enter键就开始安装
- ================================================================================
- ================================================================================
- ......
- ......
- Installation complete
- Use of this product is subject to the license agreement found at:
- /usr/share/openEuler-release/EULA
- Installation complete. Press ENTER to quit:<=======安装完成,按Enter键重启虚拟机
- 重启后就进入到虚拟机的登录界面
- ......
- [ OK ] Finished OpenEuler Security Tool.
- [FAILED] Failed to start Network Manager Wait Online. <======= 该问题可以忽略,登陆虚拟机,配置网络后即可解决
- See 'systemctl status NetworkManager-wait-online.service' for details.
- [ OK ] Reached target Network is Online.
- Starting Crash recovery kernel arming...
- Starting Notify NFS peers of a restart...
- Starting System Logging Service...
- [ OK ] Started Notify NFS peers of a restart.
- [ OK ] Started System Logging Service.
- [ OK ] Reached target Multi-User System.
- Starting Record Runlevel Change in UTMP...
- [ OK ] Finished Record Runlevel Change in UTMP.
- [ OK ] Finished Crash recovery kernel arming.
- localhost login:
- 登录成功后,这时,如果要退出虚拟机,按 Ctrl + ] 即可。
复制代码 留意:
- 3) Installation source 和 4) Software selection 不必要设置,设置了5) Installation Destination之后,会自动将3)和4)设置好
- 6) Network configuration 和 8) User creation 现在暂时可以不设置,等捏造机安装完成后,可以再进入捏造机进行设置。
2)方法二:下令行基于基础qcow2磁盘文件(镜像模板),比如方法一中安装设置好的捏造机vm1的磁盘文件vm1.qcow2,创建捏造机。参考:重新构建KVM捏造机基础镜像
说明:
这里,我们基于方法一中安装设置好的捏造机vm1的磁盘文件vm1.qcow2作为镜像模板来创建捏造机vm2。
为了制止和捏造机vm1的磁盘文件vm1.qcow2冲突,我们复制vm1.qcow2,并改名为vm2.qcow2。
- ##进入磁盘文件目录
- [root@localhost ~]# cd /home/qcow2
- ##复制vm1.qcow2,并改名为vm2.qcow2
- [root@localhost ~]# cp vm1.qcow2 vm2.qcow2
复制代码
- [root@localhost ~]# virt-install --name vm2 --ram=16384 --vcpus=8 \
- --disk path=/home/qcow2/vm2.qcow2,bus=virtio \
- --network bridge=br0,model=virtio --graphics=none \
- --console=pty,target_type=serial --hvm --virt-type kvm \
- --noautoconsole --import --autostart
复制代码 参数说明:
- --name 定义捏造机的名称,但是记住不是主机进去之后的 hostname值
- --ram 定义内存大小,单位是MB
- --vcpus 定义CPU核数
- --disk 定义存储大小,一样平常是通过path 路径指定镜像文件或者数据文件,bus=virtio 意思是指定磁盘映像文件应毗连到捏造机的哪种总线。
- --network 定义网络,bridge=br0意思是利用br0作为网桥构建网络,model=virtio指定捏造机的网络接口应利用哪种网络模型
- --hvm 完全捏造化 / --paravirt 半捏造化 / --container 容器化, 这里选择 hvm
- --virt-type 有kvm、qemu、xen等,这里选择 kvm
- --noautoconsole 创建捏造机之后,不进行自动毗连,后面可以利用virsh console xxx 来毗连到xxx 捏造机
- --import 利用一个存在的磁盘镜像来构建捏造机,和 --disk 共同利用
3)方法三:在一台Windows呆板上,通过VNC客户端,远程毗连宿主机上的VNC服务端,登录进入GNOME桌面情况后,在terminal下令窗口中输入virt-manager下令打开Virtual Machine Manager客户端,就可以通过图形化界面的方式进行捏造机管理了(包罗:创建/修改/删除捏造机等操作)。详见:VNC的安装部署-CSDN博客
留意:条件条件是在宿主机系统中安装了图形化桌面情况。详见本文:六、安装OpenEuler GNOME桌面情况。
十三、设置捏造机的网络
- [root@localhost ~]# virsh console vm1
- Connected to domain vm1
- Escape character is ^]
复制代码
- 查察捏造机的网络信息,此时还没有能联网的IP。处于UP状态的网卡是eth0
- [root@localhost ~]# ip ad
- 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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
- link/ether 52:54:00:65:d3:3f brd ff:ff:ff:ff:ff:ff
复制代码
- 修改捏造机的网络设置文件ifcfg-eth0,设置静态IP:192.168.112.61
- [root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
- TYPE=Ethernet
- PROXY_METHOD=none
- BROWSER_ONLY=no
- BOOTPROTO=static
- DEFROUTE=yes
- IPV4_FAILURE_FATAL=no
- IPV6INIT=yes
- IPV6_AUTOCONF=yes
- IPV6_DEFROUTE=yes
- IPV6_FAILURE_FATAL=no
- NAME=enp1s0
- UUID=009a3243-b57b-4845-a43b-2045ca7aa79a
- DEVICE=enp1s0
- ONBOOT=yes
- IPADDR=192.168.112.61
- PREFIX=24
- GATEWAY=192.168.112.1
- DNS1=114.114.114.114
复制代码
- #华为openeuler系统使用该命令,其他linux系统可以使用systemctl restart network
- [root@localhost network-scripts]# nmcli con reload; nmcli con up eth0
复制代码 十四、KVM捏造机常见管理下令(在宿主机中实行)
参考:KVM-捏造化管理工具 - 知乎
- ## 从虚拟机退出到宿主机
- [root@localhost ~]# Ctrl + ]
- ## 查看KVM进程
- [root@localhost ~]# ps axu |grep kvm
- ## 查看libvirt的版本信息
- [root@localhost ~]# virsh version
- ## 列出当前有多少个虚拟机,以及其状态
- [root@localhost ~]# virsh list
- ## 列出当前有多少个虚拟机,包括关机状态的虚拟机
- [root@localhost ~]# virsh list --all
- ## 进入指定的虚拟机,进入的时候还需要按一下回车
- [root@localhost ~]# virsh console vm1
- ## 编辑虚拟机的配置
- [root@localhost ~]# virsh edit vm1
- ## 使用XML文件创建一个虚拟机
- [root@localhost ~]# virsh create vm1.xml
- ## 使用XML文件定义一个虚拟机,但是不启动
- [root@localhost ~]# virsh define vm1.xml
- ## 启动虚拟机
- [root@localhost ~]# virsh start vm1
- ## 重启虚拟机
- [root@localhost ~]# virsh reboot vm1
- ## 关闭虚拟机,比较优雅地做法,按部就班的关闭虚拟机
- [root@localhost ~]# virsh shutdown vm1
- ## 强制停止虚拟机,是比较暴力的做法,相当于物理机的直接关闭电源
- [root@localhost ~]# virsh destroy vm1
- ## 彻底销毁虚拟机,会删除虚拟机配置文件,但不会删除虚拟磁盘
- [root@localhost ~]# virsh undefine vm1 --nvram
- ## 设置宿主机开机时该虚拟机也开机
- [root@localhost ~]# virsh autostart vm1
- ## 解除开机启动
- [root@localhost ~]# virsh autostart --disable vm1
- ## 列出开机自动启动的虚拟机
- [root@localhost ~]# virsh list --autostart
- ## 挂起虚拟机
- [root@localhost ~]# virsh suspend vm1
- ## 恢复挂起的虚拟机
- [root@localhost ~]# virsh resume vm1
- ## 当机器是运行状态时,卸载虚拟磁盘命令(只是当前有效,重启后又回来了)
- [root@localhost ~]# virsh detach-disk vm1 sdb
- ## 永久添加磁盘
- [root@localhost ~]# virsh attach-disk vm1 \
- /var/lib/libvirt/images/disk1/additional/vm1/file1 sdb \
- --subdriver=qcow2 --config --live --persistent
- ## 查看虚拟机有几块网卡
- [root@localhost ~]# virsh domiflist vm1
- ## 查看虚拟机的磁盘
- [root@localhost ~]# virsh domblklist vm1
- ## 查看虚拟机的cpu数量
- [root@localhost ~]# virsh vcpucount vm1
复制代码 十五、常见问题
【问题一】
问题形貌:在ARM服务器上,virt-install利用下令行模式安装捏造机时,若--extra-args加入console=tty0,创建捏造机将失败,下令实行某个阶段,就会卡死无法继续运行。
解决办法:可以把console=tty0改为console=ttyS0或者console=ttyAMA0。只要没有console=tty0就好了。
【问题二】
问题形貌:KVM创建快照失败 “Operation not supported: internal snapshots of a VM with pflash based firmware are not supported”
解决办法:
目前没有办法创建内部快照,官方没有修复方法。唯一的办法是利用外部快照。
参考URL:
https://unix.stackexchange.com/questions/663372/error-creating-snapshot-operation-not-supported-internal-snapshots-of-a-vm-wit
https://fabianlee.org/2021/01/10/kvm-creating-and-reverting-libvirt-external-snapshots/
【问题三】
问题形貌:cannot undefine domain with nvram
解决办法:
[root@localhost ~]# virsh undefine vm1 --nvram #添加--nvram参数即可
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |