2023-09-26 架构第一周

一、在两台服务器上安装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/
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容