一、在两台服务器上安装kvm虚拟化,把其中一台的虚拟机迁移到另一台
首先要先开启虚拟机的虚拟化功能,尽量把内存和cpu核数调的大一点
虚拟机配置
选两台虚拟机想要迁移只能最好选择同一系统,会有些兼容性问题,导致迁移之后打不开,我选两台的Centos8
#1.安装相应的包
#centos
[root@rocky ~]#grep -Em 1 "vmx|svm" /proc/cpuinfo
flags :vmx #里面包含vmx(intel处理器)svm(AMD处理器) #证明开启了虚拟化
[root@rocky ~]#yum install qemu-kvm libvirt virt-manager virt-install -y
[root@rocky ~]#systemctl start libvirtd
[root@rocky ~]#systemctl status libvirtd
● libvirtd.service - Virtualization daemon
Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2023-09-26 09:00:14 CST; 1s ago
#ubuntu
[root@ubuntu2004 ~]#kvm-ok #证明开启了虚拟化
INFO: /dev/kvm exists
KVM acceleration can be used
[root@ubuntu2004 ~]#apt -y install qemu-kvm virt-manager libvirt-daemon-system
[root@ubuntu2004 ~]#systemctl status libvirtd
● libvirtd.service - Virtualization daemon
Loaded: loaded (/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2023-09-26 00:59:07 UTC; 35min ago
#2.创建虚拟机,打开图形化窗口
[root@rocky ~]#export DISPLAY=10.0.0.1:0.0
[root@rocky ~]#virt-manager
#在虚拟机里,创建文件夹,放入iso镜像
[root@rocky ~]#mkdir /isos
[root@rocky ~]#cd /isos/
[root@rocky isos]#ls
CentOS-7-x86_64-Minimal-2009.iso
创建虚拟机窗口
image.png
image.png
image.png
一路往下走,就可以安装centos7了
image.png
把创捷虚拟机生成的文件,保留属性传到另一台KVM上,重启服务打开图形界面,就可以完成迁移
#迁移虚拟机
[root@rocky ~]#scp -p /etc/libvirt/qemu/centos.xml 10.0.0.68:/etc/libvirt/qemu/
The authenticity of host '10.0.0.68 (10.0.0.68)' can't be established.
ECDSA key fingerprint is SHA256:aOhZM49YQIH6Caj1HkdK1ZlVM2maWEkPgm+j7AsTSy0.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '10.0.0.68' (ECDSA) to the list of known hosts.
root@10.0.0.68's password:
centos.xml 100% 5910 349.2KB/s 00:00
[root@rocky ~]#scp -p /var/lib/libvirt/images/centos.qcow2 10.0.0.68:/var/lib/libvirt/images/
root@10.0.0.68's password:
centos.qcow2 100% 20GB 63.7MB/s 05:21
#另一台KVM机器,重启服务
[root@rocky8 ~]#ll /var/lib/libvirt/images/centos.qcow2
-rw------- 1 qemu qemu 21478375424 Sep 26 11:11 /var/lib/libvirt/images/centos.qcow2
[root@rocky8 ~]#ll /etc/libvirt/qemu/centos.xml
-rw------- 1 root root 5910 Sep 26 10:02 /etc/libvirt/qemu/centos.xml
[root@rocky8 ~]#systemctl restart libvirtd
[root@rocky8 ~]#export DISPLAY=10.0.0.1:0.0
[root@rocky8 ~]#virt-manager
迁移的虚拟机
二、手动制作一个容器镜像创建成容器并正常运行。
首先需要安装docker
#先配置docker的镜像文件
[root@rocky ~]#vim /etc/yum.repos.d/docker.rep
[docker-ce]
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/8/x86_64/stable/
gpgcheck=0
#安装docker
[root@rocky ~]#yum -y install docker-ce
#查看docker版本
[root@rocky ~]#docker -v
Docker version 24.0.6, build ed223bc
#启动dockers
[root@rocky ~]#systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
Active: inactive (dead)
Docs: https://docs.docker.com
[root@rocky ~]#systemctl enable --now docker
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /usr/lib/systemd/system/docker.service.
[root@rocky ~]#docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
配置docker容器的阿里云加速器
[root@rocky ~]#vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://7v8inm4b.mirror.aliyuncs.com"] # 这里的地址在阿里云镜像容器中
}
[root@rocky ~]#systemctl daemon-reload
[root@rocky ~]#systemctl restart docker
拉取镜像,官方镜像的基础上制作镜像,这里以rocky的容器为例
[root@rocky ~]#docker run -it --name rocky rockylinux bash
Unable to find image 'rockylinux:latest' locally
latest: Pulling from library/rockylinux
72a2451028f1: Pull complete
Digest: sha256:5fed5497b568bcf7a90a00965987fc099edbcf44b1179a5ef6d4b47758281ca5
Status: Downloaded newer image for rockylinux:latest
[root@9ee89be540ba /]#
[root@rocky ~]#docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
rockylinux latest 210996f98b85 21 months ago 205MB
[root@rocky ~]#docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9ee89be540ba rockylinux "bash" 48 seconds ago Up 46 seconds rocky
制作镜像
#准备一个镜像源文件,替换容器中的镜像源
[root@rocky ~]#docker cp base.repo rocky:/etc/yum.repos.d/
Successfully copied 3.58kB to rocky:/etc/yum.repos.d/
容器中的配置文件
[root@9ee89be540ba /]# cat /etc/yum.repos.d/base.repo
[BaseOS]
name=BaseOS
baseurl=https://mirror.tuna.tsinghua.edu.cn/centos/8/BaseOS/x86_64/os/
https://mirrors.huaweicloud.com/centos/8/BaseOS/x86_64/os/
https://mirrors.cloud.tencent.com/centos/8/BaseOS/x86_64/os/
https://mirrors.aliyun.com/centos/8/BaseOS/x86_64/os/
gpgcheck=0
[AppStream]
name=AppStream
baseurl=https://mirror.tuna.tsinghua.edu.cn/centos/8/AppStream/x86_64/os/
https://mirrors.huaweicloud.com/centos/8/AppStream/x86_64/os/
https://mirrors.cloud.tencent.com/centos/8/AppStream/x86_64/os/
https://mirrors.aliyun.com/centos/8/AppStream/x86_64/os/
gpgcheck=0
[epel]
name=EPEL
baseurl=https://mirror.tuna.tsinghua.edu.cn/epel/$releasever/Everything/$basearch
https://mirrors.cloud.tencent.com/epel/$releasever/Everything/$basearch
https://mirrors.huaweicloud.com/epel/$releasever/Everything/$basearch
https://mirrors.aliyun.com/epel/$releasever/Everything/$basearch
gpgcheck=0
enabled=1
[extras]
name=extras
baseurl=https://mirror.tuna.tsinghua.edu.cn/centos/$releasever/extras/$basearch/os
https://mirrors.cloud.tencent.com/centos/$releasever/extras/$basearch/os
https://mirrors.huaweicloud.com/centos/$releasever/extras/$basearch/os
https://mirrors.aliyun.com/centos/$releasever/extras/$basearch/os
gpgcheck=0
enabled=1
[PowerTools]
name=CentOS- - PowerTools - mirrors.aliyun.com
baseurl=https://mirror.tuna.tsinghua.edu.cn/centos/$releasever/PowerTools/$basearch/os/
https://mirrors.cloud.tencent.com/centos/$releasever/PowerTools/$basearch/os/
https://mirrors.huaweicloud.com/centos/$releasever/PowerTools/$basearch/os/
https://mirrors.aliyun.com/centos/$releasever/PowerTools/$basearch/os/
gpgcheck=0
enabled=1
gpgkey=https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official
安装常用软件
[root@9ee89be540ba ~]# yum -y install bash-completion psmisc git tree net-tools vim lsof iproute
#创建账号和组
[root@9ee89be540ba ~]# groupadd -g 88 www
[root@9ee89be540ba ~]# useradd -g www -u 88 -r -s /sbin/nologin -M -d /home/www www
[root@9ee89be540ba ~]# id www
uid=88(www) gid=88(www) groups=88(www)
给镜像打包,制作镜像
[root@rocky ~]#docker commit rocky rockylinux:v8.5-2023-09-26
sha256:5f27eff109246b48a0a66cc35194b5db3f2c9735d457d0597c4b90178db11420
[root@rocky ~]#docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
rockylinux v8.5-2023-09-26 5f27eff10924 5 seconds ago 455MB
rockylinux latest 210996f98b85 21 months ago 205MB
测试刚才配置的文件,安装的程序都可以使用
[root@rocky ~]#docker run -it --name rocky01 rockylinux:v8.5-2023-09-26 bash
[root@3416b22064a3 /]# vim /etc/yum.repos.d/base.repo
[BaseOS]
name=BaseOS
baseurl=https://mirror.tuna.tsinghua.edu.cn/centos/8/BaseOS/x86_64/os/
https://mirrors.huaweicloud.com/centos/8/BaseOS/x86_64/os/
https://mirrors.cloud.tencent.com/centos/8/BaseOS/x86_64/os/
https://mirrors.aliyun.com/centos/8/BaseOS/x86_64/os/
gpgcheck=0
[AppStream]
name=AppStream
baseurl=https://mirror.tuna.tsinghua.edu.cn/centos/8/AppStream/x86_64/os/
https://mirrors.huaweicloud.com/centos/8/AppStream/x86_64/os/