OpenStack02 您所在的位置:网站首页 centos71 OpenStack02

OpenStack02

2023-04-02 02:42| 来源: 网络整理| 查看: 265

1、什么是虛拟化? 虚拟化是一种具体技术,把实体资源进行虚拟化。 虚拟化技术根据对象可以分成计算虚拟化、存储虚拟化、网络虚拟化等。虚拟化是一种具体技术,指是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。 虚拟化软件: qemu:(全虚拟)几乎可以模拟所有的硬件和操作系统。性能特别差,兼容性好。xen:(半虚拟)需要使用专门修改之后的内核。性能特别好,兼容性差。(redhat 5.5之前使用的就是xen)KVM:(全虚拟)基于内核,而且不需要使用专门的内核。性能较好,兼容较好。(centos6使用的是kvm) 2、创建KVM虚拟机 环境要求 可以使用centos7.4、7.6等,但不要使用7.5。CPU开启虚拟化。在10.1.1.13上创建虚拟机 2.1、安装创建虚拟机的工具

1、安装KVM工具

1

]# yum install qemu-kvm qemu-kvm-tools libvirt virt-manager virt-install

libvirt:管理KVM虚拟机。可以操作KVM、vmware、XEN、Hyper-v、LXC等Hypervisor。 virsh:创建、暂停和关闭domain(域)。libvirt的命令行工具(CLI)。virt-manager:管理虚拟机的桌面工具。libvirt的GUI工具。virt-install:创建KVM虚拟机的命令行工具。virt-clone:克隆虚拟机的命令行工具。qemu-img:允许离线创建、转换和修改镜像。可以处理QEMU格式的的所有镜像。

2、启动libvirtd

1

2

]# systemctl start libvirtd.service

]# systemctl status libvirtd.service

2.2、创建虚拟机 下载centos的ISO镜像 http://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-Minimal-2009.iso 2.2.1、使用nat网络创建虚拟机

1

2

3

]# virt-install --name CentOS71-x86_64 --virt-type kvm --os-variant rhel7 --boot hd \

    --memory 1024 --vcpus 1 --disk /apps/images/CentOS71-x86_64.raw,format=raw,size=10 --network network=default \

    --graphics vnc,listen=0.0.0.0 --noautoconsole --cdrom /apps/iso/CentOS-7-x86_64-Minimal-2009.iso

参数说明: --name:虚拟机的名称--virt-type:虚拟化的类型 (kvm, qemu, xen, ...),默认qemu。--os-variant:虚拟机的操作系统,例如fedora18、rhel6、winxp等。(rhel7是RedHat Enterprise Linux 7)--memory:虚拟机的内存大小,单位MB。--vcpus:虚拟机的cpu核数--disk PATH,format=raw,size=10:PATH虚拟机磁盘在宿主机的路径,format磁盘的格式(raw和qcow2),size磁盘的大小(单位GB) raw:分配多少空间就立即占用多少。不支持快照,不方便传输,性能较好。qcow2:不会立即占用所有分配的空间,而是使用多少就占用多少,直到使用完毕。支持快照,方便传输,性能比raw差一点。--network network=defaul:虚拟机的网络类型,默认是nat。--graphics vnc,listen=0.0.0.0:显示器通过VNC输出--noautoconsole:不要自动尝试连接到客户端控制台--cdrom:操作系统镜像也可以先创建磁盘,再创建虚拟机(与上等价)。

1

2

3

4

5

6

7

//(1)创建虚拟机镜像文件

]# qemu-img create -f raw /apps/images/CentOS71-x86_64.raw 10G

//(2)创建虚拟机

]# virt-install --name CentOS71-x86_64 --virt-type kvm --os-variant rhel7 --boot hd \

    --memory 1024 --vcpus 1 --disk /apps/images/CentOS71-x86_64.raw --network network=default \

    --graphics vnc,listen=0.0.0.0 --noautoconsole --cdrom /apps/iso/CentOS-7-x86_64-Minimal-2009.iso

2.2.2、使用桥接网络创建虚拟机

1、创建桥接网络

1

2

3

4

//将eth0网络接口 桥接 到br0网桥上

]# virsh iface-bridge eth0 br0

Created bridge br0 with attached device eth0

Bridge interface br0 started

2、创建虚拟机

1

2

3

]# virt-install --name CentOS72-x86_64 --virt-type kvm --os-variant rhel7 --boot hd \

    --memory 1024 --vcpus 1 --disk /apps/images/CentOS72-x86_64.raw,format=raw,size=10 --network bridge=br0 \

    --graphics vnc,listen=0.0.0.0 --noautoconsole --cdrom /apps/iso/CentOS-7-x86_64-Minimal-2009.iso

参数说明: --network bridge=br0:虚拟机的网络类型,使用桥接网络。 2.2.3、查看虚拟机 两种网络的虚拟机可以同时存在。两种网络之间转换,只需修改虚拟机配置文件的如下内容:

1

2

3

4

5

6

7

//nat网络

    

      

//桥接网络

    

      

1、查看虚拟机

1

2

3

4

5

]# virsh list --all

 Id    Name                           State

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

 1     CentOS71-x86_64                running

 2     CentOS72-x86_64                running

2、查看以太网网桥

1

2

3

4

5

6

]# brctl show

bridge name     bridge id               STP enabled    interfaces

br0             8000.000c292158ff       yes            eth0

                                                       vnet1

virbr0          8000.52540042df18       yes            virbr0-nic

                                                       vnet0

2.3、安装虚拟机 使用VNC Viewer连接虚拟机进行安装

1、获取连接虚拟机的VNC编号

1

2

]# virsh vncdisplay CentOS71-x86_64

:0

2、连接到虚拟机

在进入安装界面的时候把光标移动到Install CentOS7,按下tab键,在后面输入“net.ifnames=0 biosdevname=0”回车即可。 virt-install命令执行后,要赶紧连接到虚拟机,否则看不到该页面。

3、配置虚拟机

3、virsh命令 3.1、管理虚拟机

1、查看虚拟机

1

virsh list --all

2、开关虚拟机

1

2

3

4

5

6

7

8

9

10

//开启虚拟机

virsh start

//重启虚拟机

virsh reboot

//关闭虚拟机(正常关机)

virsh shutdown

//关闭虚拟机(关闭电源)

virsh destroy

3、将虚拟机设置为开机自启

1

2

3

4

5

6

7

8

//将虚拟机设置为开机自启

virsh autostart

//取消开机自启

virsh autostart --disable

//设置开机自启后,会创建该目录,并创建其软链

]# ls -l /etc/libvirt/qemu/autostart/

4、挂起和恢复虚拟机

1

2

3

4

5

//挂起虚拟机

virsh suspend

//恢复虚拟机

virsh resume

5、VNC连接虚拟机

VNC可以通过虚拟机的编号或虚拟机的端口连接虚拟机。

1

2

3

4

5

6

7

8

9

//显示连接虚拟机的URI

virsh domdisplay

//显示虚拟机的VNC编号

virsh vncdisplay

//当有多个虚拟机时,端口会从5900递增

]# sudo netstat -ntpl | sort -k 7

tcp        0      0 0.0.0.0:5900            0.0.0.0:*               LISTEN      1897/qemu-kvm      

tcp        0      0 0.0.0.0:5901            0.0.0.0:*               LISTEN      1937/qemu-kvm

6、使用console登录虚拟机(命令行控制台,代替VNC)

1

2

3

4

5

6

7

8

//(1)修改KVM虚拟机的内核参数(/boot/grub2/grub.cfg)

]# grubby --update-kernel=ALL --args="console=ttyS0,115200n8"

//(2)重启KVM虚拟机

]# reboot

//(3)连接虚拟机(“Ctrl + ]”退出虚拟机)

virsh console

7、虚拟机的配置文件

一个虚拟机有两个文件: 磁盘文件:配置文件:/etc/libvirt/qemu

1

2

3

4

5

6

7

8

//备份配置文件

virsh dumpxml > .xml

//修改配置文件

virsh edit .xml

//导入配置文件

virsh define .xml

8、删除虚拟机

1

2

3

4

5

6

7

8

//(1)关闭虚拟机

virsh destroy

//(2)删除虚拟机的配置文件

virsh undefine

//(3)删除虚拟机的磁盘文件

rm /apps/images/.raw

9、迁移虚拟机到其他磁盘

1

2

3

//(1)将虚拟机镜像文件迁移到其他磁盘

//(2)修改虚拟机的配置文件中的磁盘路径

3.2、管理快照

1

2

3

4

5

6

7

8

9

10

11

//查看快照

virsh snapshot-list

//还原快照

virsh snapshot-revert --snapshotname Snapshot_Name

//创建快照

virsh snapshot-create-as  --name Snapshot_Name

//删除快照

virsh snapshot-revert --name Snapshot_Name

4、virt-clone命令-克隆虚拟机

1

2

3

4

5

]# virsh list --all

 Id    Name                           State

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

 1     CentOS71-x86_64                running

 2     CentOS72-x86_64                running

1、完整克隆(自动)

1

2

3

4

5

//(1)完整克隆(克隆前要关闭虚拟机)

]# virt-clone --auto-clone -o CentOS71-x86_64 -n CentOS73-x86_64

//(2)启动虚拟机

]# virsh start CentOS73-x86_64

2、完整克隆(手动)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

//(1)复制虚拟机磁盘

]# cp /apps/images/CentOS71-x86_64.qcow2 /apps/images/CentOS74-x86_64.qcow2

//(2)创建虚拟机配置文件

]# virsh dumpxml CentOS71-x86_64 > /etc/libvirt/qemu/CentOS74-x86_64.xml

]# vim /etc/libvirt/qemu/CentOS74-x86_64.xml

    #修改虚拟机的名字

    #删除虚拟机uuid

    #删除mac地址

    #修改磁盘路径

//(3)导入虚拟机配置文件

]# virsh define /etc/libvirt/qemu/CentOS74-x86_64.xml

//(4)启动虚拟机

]# virsh start CentOS74-x86_64

3、连接克隆(手动)

1

2

3

4

5

6

7

//(1)基于磁盘CentOS71-x86_64.raw创建磁盘CentOS75-x86_64.qcow2(新创建的磁盘的格式必须是qcow2)

]# qemu-img create -f qcow2 -b /apps/images/CentOS71-x86_64.raw /apps/images/CentOS75-x86_64.qcow2

//(2)启动CentOS75-x86_64虚拟机

]# virt-install --name CentOS75-x86_64 --virt-type kvm --os-variant rhel7 --boot hd \

    --memory 1024 --vcpus 1 --disk /apps/images/CentOS75-x86_64.qcow2 --network network=default \

    --graphics vnc,listen=0.0.0.0 --noautoconsole

5、qemu-img命令-管理虚拟磁盘

1

2

3

4

5

]# virsh list --all

 Id    Name                           State

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

 1     CentOS71-x86_64                running

 2     CentOS72-x86_64                running

1、qemu-img常用命令

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

//创建磁盘

]# qemu-img create -f qcow2 /apps/images/CentOS73-x86_64.qcow2 10G

Formatting '/apps/images/CentOS73-x86_64.qcow2', fmt=qcow2 size=10737418240 encryption=off cluster_size=65536 lazy_refcounts=off

//查看磁盘信息

]# qemu-img info /apps/images/CentOS73-x86_64.qcow2

image: /apps/images/CentOS73-x86_64.qcow2

file format: qcow2

virtual size: 10G (10737418240 bytes)

disk size: 196K

cluster_size: 65536

Format specific information:

    compat: 1.1

    lazy refcounts: false

//扩容磁盘。raw格式的镜像支持增大或缩小,而qcow2格式只支持增大。(注意,一定不要进行缩容)

]# qemu-img resize /apps/images/CentOS73-x86_64.qcow2 100G

//将raw格式转换为qcow2(转换格式后,KVM虚拟机的配置文件要修改磁盘路径和格式两个地方)

]# qemu-img convert -f raw -O qcow2 /apps/images/CentOS71-x86_64.raw /apps/images/CentOS74-x86_64.qcow2

2、转换磁盘格式

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

//将raw格式转换为qcow2(转换格式后,KVM虚拟机的配置文件要修改磁盘路径和格式两个地方)

]# qemu-img convert -f raw -O qcow2 /apps/images/CentOS71-x86_64.raw /apps/images/CentOS75-x86_64.qcow2

]# virsh dumpxml CentOS71-x86_64 > CentOS75-x86_64.xml

]# vim CentOS75-x86_64.xml

    #修改虚拟机的名字

    #删除虚拟机uuid

    #删除mac地址

    #修改磁盘格式

    #修改磁盘路径

]# virsh define CentOS75-x86_64.xml

]# virsh start CentOS75-x86_64

学习地址:Dpdk/网络协议栈/vpp/OvS/DDos/NFV/虚拟化/高性能专家(免费订阅,永久学习)

【文章福利】需要更多DPDK/SPDK学习资料加群793599096(资料包括C/C++,Linux,golang技术,内核,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK,大厂面试题 等)可以自行添加学习交流群点击这里噢~

 

6、热添加技术 6.1、动态添加磁盘 6.1.1、常用命令

1

2

3

4

5

6

7

8

9

//添加磁盘,临时生效

virsh attach-disk [--subdriver ]

//添加磁盘,永久生效

virsh attach-disk [--subdriver ] [--config]

//剥离磁盘,临时生效

virsh detach-disk

//剥离磁盘,永久生效

virsh detach-disk [--config]

参数说明: :虚拟机:磁盘设备的来源(绝对路径):磁盘设备的目标[--subdriver ]:磁盘设备的子驱动器[--config]:重启生效 6.1.2、动态添加和扩容磁盘示例

1、查看虚拟机

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

//(1)查看虚拟机名称

]# virsh list --all

 Id    Name                           State

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

 1     CentOS71-x86_64                running

//(2)查看虚拟机现有的磁盘文件

]# ls -lh /apps/images/

-rw------- 1 qemu qemu 10G Mar  3 02:15 CentOS71-x86_64.raw

//(3)查看虚拟机的VNC编号

]# virsh vncdisplay CentOS71-x86_64

:0

//(4)连接到虚拟机中,查看磁盘大小

]# df -lh

Filesystem      Size  Used Avail Use% Mounted on

/dev/vda1        10G  1.4G  8.7G  14% /

...

2、创建一个磁盘

1

]# qemu-img create -f qcow2 /apps/images/CentOS71-x86_64-2.qcow2 20G

3、将新磁盘添加到虚拟机上

1

2

3

//临时和永久生效都要执行

]# virsh attach-disk CentOS71-x86_64 /apps/images/CentOS71-x86_64-2.qcow2 vdb --subdriver qcow2

]# virsh attach-disk CentOS71-x86_64 /apps/images/CentOS71-x86_64-2.qcow2 vdb --subdriver qcow2 --config

4、格式化并挂载新磁盘

连接到虚拟机中,进行操作。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

//(1)查看磁盘信息

]# fdisk -l

Disk /dev/vda: 10.7 GB, 10737418240 bytes, 20971520 sectors

   Device Boot      Start         End      Blocks   Id  System

/dev/vda1   *        2048    20971519    10484736   83  Linux

Disk /dev/vdb: 21.5 GB, 21474836480 bytes, 41943040 sectors

//(2)查看磁盘格式

]# lsblk -f

NAME   FSTYPE LABEL UUID                                 MOUNTPOINT                                                  

vda                                                     

└─vda1 xfs          c4d392df-d657-4103-a3b3-0a77752f1c9b /

vdb

//(3)格式化新磁盘

]# mkfs.xfs /dev/vdb

//(4)挂载新磁盘

]# mount /dev/vdb /mnt

//(5)查看磁盘大小

]# df -lh

Filesystem      Size  Used Avail Use% Mounted on

/dev/vda1        10G  1.4G  8.7G  14% /

/dev/vdb         20G   33M   20G   1% /mnt

...

5、向新磁盘中写入数据

1

2

//模拟数据,用于扩容后观察数据是否丢失

]# cp -rf /etc/yum.repos.d /mnt

6、扩容新磁盘

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

//(1)在虚拟机中,将要扩容的磁盘卸载掉

]# umount /mnt/

//(2)临时剥离磁盘

]# virsh detach-disk CentOS71-x86_64 vdb

//(3)调整磁盘容量

]# qemu-img resize /apps/images/CentOS71-x86_64-2.qcow2 +10G

//(4)将磁盘临时添加到虚拟机上

]# virsh attach-disk CentOS71-x86_64 /apps/images/CentOS71-x86_64-2.qcow2 vdb --subdriver qcow2

//(5)在虚拟机中,再次挂载磁盘

]# mount /dev/vdb /mnt

//(6)在虚拟机中,更新扩容磁盘的超级块信息(resize2fs用于ext4)

]# xfs_growfs /dev/vdb

7、验证是否扩容成功

1

2

3

4

5

6

7

8

]# df -lh

Filesystem      Size  Used Avail Use% Mounted on

/dev/vda1        10G  1.4G  8.7G  14% /

/dev/vdb         30G   33M   30G   1% /mnt

...

]# ls -lh /mnt

drwxr-xr-x. 2 root root 220 Mar  3 02:44 yum.repos.d

6.2、动态添加网卡 6.2.1、常用命令

1

2

3

4

5

6

7

8

9

//添加网卡,临时生效

virsh attach-interface    [--model ]

//添加网卡,临时生效

virsh attach-interface    [--model ] [--config]

//剥离网卡,临时生效

detach-interface  [--mac ]

//剥离网卡,永久生效

detach-interface  [--mac ] [--config]

参数说明: :虚拟机:网络接口类型:网络接口来源(绝对路径)[--model ]:模型类型[--config]:重启生效[--mac ]:MAC地址 6.2.2、动态添加网卡示例

1、查看虚拟机信息

1

2

3

4

5

6

7

8

9

10

11

12

13

14

//查看虚拟机

]# virsh list --all

 Id    Name                           State

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

 1     CentOS71-x86_64                running

 2     CentOS72-x86_64                running

//查看以太网网桥

]# brctl show

bridge name     bridge id               STP enabled    interfaces

br0             8000.000c292158ff       yes            eth0

                                                       vnet1

virbr0          8000.52540042df18       yes            virbr0-nic

                                                       vnet0

2、添加网络接口

1

2

3

4

5

6

7

//为虚拟机添加nat网络接口

]# virsh attach-interface CentOS71-x86_64 network default --model virtio

]# virsh attach-interface CentOS71-x86_64 network default --model virtio --config

//为虚拟机添加桥接网络接口

]# virsh attach-interface CentOS71-x86_64 bridge br0 --model virtio

]# virsh attach-interface CentOS71-x86_64 bridge br0 --model virtio --config

3、验证添加网卡是否成功

(1)查看以太网网桥

1

2

3

4

5

6

7

8

]# brctl show

bridge name     bridge id               STP enabled    interfaces

br0             8000.000c292158ff       yes            eth0

                                                       vnet1

                                                       vnet3

virbr0          8000.52540042df18       yes            virbr0-nic

                                                       vnet0

                                                       vnet2

(2)连接到虚拟机上,查看网络接口

6.3、动态添加CPU 6.3.1、常用命令 CPU只能增加,不能减少。

1

2

3

4

//添加CPU,临时有效

setvcpus

//添加CPU,永久有效

setvcpus [--config]

6.3.2、动态添加CUP

1、查看虚拟机

1

2

3

4

5

6

//查看虚拟机

]# virsh list --all

 Id    Name                           State

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

 -     CentOS71-x86_64                shut off

 -     CentOS72-x86_64                shut off

2、创建虚拟机

要动态添加CUP,在创建虚拟机时必须使用特殊的选项“--vcpus 1,maxvcpus=5”

1

2

3

4

5

]# qemu-img create -f qcow2 -b /apps/images/CentOS71-x86_64.raw /apps/images/CentOS73-x86_64.qcow2

]# virt-install --name CentOS73-x86_64 --virt-type kvm --os-variant rhel7 --boot hd \

    --memory 1024 --vcpus 1,maxvcpus=5 --disk /apps/images/CentOS73-x86_64.qcow2  --network network=default \

    --graphics vnc,listen=0.0.0.0 --noautoconsole

3、动态添加CPU

1

2

]# virsh setvcpus CentOS73-x86_64 2

]# virsh setvcpus CentOS73-x86_64 2 --config

6.3、动态添加内存 6.3.1、常用命令 内存可以动态扩缩容。

1

2

3

4

//修改内存大小,临时有效

setmem

//修改内存大小,永久有效

setmem [--config]

6.3.2、动态添加内存示例

1、查看虚拟机

1

2

3

4

5

6

//查看虚拟机

]# virsh list --all

 Id    Name                           State

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

 -     CentOS71-x86_64                shut off

 -     CentOS72-x86_64                shut off

2、创建虚拟机

要动态扩缩容内存,在创建虚拟机时必须使用特殊的选项“--memory 512,maxmemory=2048”

1

2

3

4

5

]# qemu-img create -f qcow2 -b /apps/images/CentOS71-x86_64.raw /apps/images/CentOS73-x86_64.qcow2

]# virt-install --name CentOS73-x86_64 --virt-type kvm --os-variant rhel7 --boot hd \

    --memory 512,maxmemory=2048 --vcpus 1 --disk /apps/images/CentOS73-x86_64.qcow2  --network network=default \

    --graphics vnc,listen=0.0.0.0 --noautoconsole

3、修改内存大小

1

2

3

//修改内存大小

]# virsh setmem CentOS73-x86_64 1024

]# virsh setmem CentOS73-x86_64 1024 --config

1

1

#                                                                                                                                      #

转自:https://www.cnblogs.com/maiblogs/p/17163611.html



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有