KVM仮想化プラットフォームの展開(理論+実践的)

KVM仮想マシン:

Linuxの2.6.20は、Linuxの各メジャーリリースに組み込まれているので1.KVMが短いため、カーネルベースの仮想マシンで、オープンソースのシステムの仮想化モジュールです。これは、Xen、まれコアのソースコードに非常に相対的な、自分自身を管理するために、Linuxのスケジューラを使用しています。KVMは主流の学術VMMの一つとなっています

仮想化の2.KVMは(インテルVTテクノロジまたはAMD Vテクノロジなど)のハードウェアサポートが必要です。それは完全にハードウェアベースの仮想化です。早期のXenは準仮想化に基づいており、ソフトウェアシミュレーションの新バージョンは、仮想化のための完全なハードウェアサポートに基づいています。しかし、Xenの自体は、独自のプロセススケジューラ、メモリ管理モジュールを持っているので、コードが比較的大きいです。広く商業的にシステムの仮想化ソフトウェアのVMware ESXシリーズは、ソフトウェアベースのシミュレーションフル仮想化です

仮想開発プロセス:

IDCのデータセンター機器のレンタル→仮想化ソリューションが提案されている、そこのOpenVZ→共有の最適化は、Xen、仮想アーキテクチャは半分を提案発生しますが、全体の複雑な操作は→仮想KVMを入力して、カーネルのみ管理ツールをインストールする必要が接触を必要としません。

ケースの概要

同社のLinuxサーバの利用率の1パートは、これらのLinuxサーバーを活用するために、高くない展開できるKVM、業務システムの複数の上で実行されている物理マシンは、
たとえば2。KVMは、サーバ上で実行されているnginxのを展開して、仮想マシンのTomcat上で実行します

ケースの事前知識

KVM仮想化アーキテクチャ

KVMモジュールは、直接、Linuxカーネルに統合されています

<IMG SRC = " https://img-blog.csdnimg.cn/20191219094458210.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0phcnJ5Wmhv,size_16,color_FFFFFF,t_70 " ALT =「ここに画像を挿入します説明"スタイル="ズーム:67% ;「/>

KVMの構成は次のとおりです。

ここに画像を挿入説明

KVMドライバ:

1.仮想マシンの作成
2.メモリ割り当て
3.仮想CPUの書き込みを登録
4.仮想CPUの実行を

QEMU(簡略化および変性):

1.アナログPCハードウェアユーザーコントロールアセンブリの
経路は、I / Oデバイス、周辺アクセスモデルを提供します2。

3つのモードでKVMの仮想化:

1.顧客モード(仮想マシン)
2.ユーザモード(ツール)
3.カーネルモード

<IMG SRC = " https://img-blog.csdnimg.cn/20191219094917435.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0phcnJ5Wmhv,size_16,color_FFFFFF,t_70 " ALT =「ここに画像を挿入します説明"スタイル="ズーム:67% ;「/>

KVMは動作します:

<IMG SRC = " https://img-blog.csdnimg.cn/20191219095651288.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0phcnJ5Wmhv,size_16,color_FFFFFF,t_70 " ALT =「ここに画像を挿入します説明"スタイル="ズーム:67% ;「/>

デモ:

環境を準備します:

1.ディスクを追加する必要があります:20Gサイズ

2.プロセッサーの設定:仮想化エンジンティックすべてのオプション
ここに画像を挿入説明

[root@client ~]# cd /dev
[root@client dev]# ls
sda   sda1   sda2    sda3   sda4   sda5   sdb 
#此时有sdb硬盘

[root@client dev]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0xba1e8e30 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n       #输入n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p       #输入p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 20 GiB
命令(输入 m 获取帮助):w      #输入w保存退出
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。

[root@client dev]# mkfs /dev/sdb1       #格式化
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1310720 inodes, 5242624 blocks
262131 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=4294967296
160 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000
Allocating group tables: 完成
正在写入inode表: 完成
Writing superblocks and filesystem accounting information: 完成

[root@client dev]# mkdir /data      #创建挂载
[root@client dev]# mount /dev/sdb1 /data/
[root@client data]# df -hT
文件系统       类型      容量  已用  可用 已用% 挂载点
/dev/sdb1      ext2       20G   44M   19G    1% /data
#此时显示已经挂载

#电脑中有CentOS 7镜像文件的文件夹需要进行共享,设置账户Everyone可以进行读取,然后使用smbclient -L查看挂载
[root@client data]# smbclient -L //192.168.10.190/
Enter SAMBA\root's password:
OS=[Windows 10 Home China 18363] Server=[Windows 10 Home China 6.3]

        Sharename       Type      Comment
        ---------       ----      -------
        database        Disk
        F$              Disk      默认共享
        gfs             Disk
        IPC$            IPC       远程 IPC
        ISO             Disk
        rpm             Disk
#此时显示ISO文件夹被共享

[root@client data]# mount.cifs //192.168.10.190/ISO /mnt
Password for root@//192.168.10.190/ISO:
[root@client data]# df -h
文件系统              容量  已用  可用 已用% 挂载点
/dev/sdb1              20G   44M   19G    1% /data
//192.168.10.190/ISO  226G  173G   54G   77% /mnt
#此时显示文件成功挂载在mnt目录下
[root@client data]# cd /mnt/
[root@client mnt]# ls
CentOS-7-x86_64-DVD-1708.iso

インストールKVM:

[root@client mnt]# yum list         #进行自检
[root@client mnt]# yum groupinstall "GNOME Desktop" -y      #桌面环境
[root@client mnt]# yum install qemu-kvm -y      #KVM模块
[root@client mnt]# yum install qemu-kvm-tools -y        #KVM调试工具
[root@client mnt]# yum install virt-install -y      #构建虚拟机的命令工具
[root@client mnt]# yum install qemu-img -y      #qemu组件,创建磁盘,启动虚拟机
[root@client mnt]# yum install bridge-utils -y      #网络支持工具
[root@client mnt]# yum install libvirt -y       #虚拟机管理工具
[root@client mnt]# yum install virt-manager -y      #图像化管理虚拟机
[root@client mnt]# egrep '(vmx|svm)' /proc/cpuinfo      #查看是否支持虚拟化

[root@client mnt]# lsmod | grep kvm     #检查KVM是否安装
kvm_intel             170086  0
kvm                   566340  1 kvm_intel
irqbypass              13503  1 kvm

[root@client mnt]# systemctl start libvirtd
[root@client mnt]# systemctl enable libvirtd        #开机自启动

ブリッジの設定例:

[root@client mnt]# cd /data/
[root@client data]# mkdir vdisk viso
[root@client data]# ls
lost+found  vdisk  viso
[root@client data]# cp -r /mnt/CentOS-7-x86_64-DVD-1708.iso /data/viso/
[root@client data]# ls viso/
CentOS-7-x86_64-DVD-1708.iso
[root@client data]# cd /etc/sysconfig/network-scripts/
[root@client network-scripts]# cp -p ifcfg-ens33 ifcfg-br0
[root@client network-scripts]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.18.145  netmask 255.255.255.0  broadcast 192.168.18.255
        inet6 fe80::6a0c:e6a0:7978:3543  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:a4:cb:c7  txqueuelen 1000  (Ethernet)
        RX packets 6559352  bytes 9624037086 (8.9 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 364406  bytes 30690747 (29.2 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
......此处省略多行
[root@client network-scripts]# vim ifcfg-ens33
#在末行按o转下行插入
BRIDGE=br0
#插入完成后按Esc退出插入模式,输入:wq保存退出
[root@client network-scripts]# vim ifcfg-br0
TYPE="bridge"               #Ethernet改为bridge
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"          #dhcp改为static
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="br0"                  #ens33改为br0
DEVICE="br0"                #ens33改为br0
ONBOOT="yes"
IPADDR=192.168.18.145       #输入ens33的IP地址
NETMASK=255.255.255.0       #输入子网掩码
GATEWAY=192.168.18.1        #输入网关
#修改退出插入模式,输入:wq保存退出
[root@client network-scripts]# service network restart      #重启网络服务
Restarting network (via systemctl):                        [  确定  ]

[root@client network-scripts]# ifconfig
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.18.145  netmask 255.255.255.0  broadcast 192.168.18.255
        inet6 fe80::e169:c641:eeea:50f7  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:a4:cb:c7  txqueuelen 1000  (Ethernet)
        RX packets 20  bytes 1298 (1.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 35  bytes 4588 (4.4 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 00:0c:29:a4:cb:c7  txqueuelen 1000  (Ethernet)
        RX packets 6559967  bytes 9624087097 (8.9 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 364793  bytes 30733147 (29.3 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
......以下省略多行
#桥接之后原来ens33的网卡IP到br0上了

グラフィカルインターフェース入力へ戻ります

[root@client ~]# virt-manager 

このとき、仮想システム管理インターフェイスからジャンプします、我々は、ストレージプールを追加する必要があります

ディレクトリブラウズカスタムプールの名前をクリックして、/データ/仮想ディスクにディレクトリを選択し、我々はCentOS7フォルダのディレクトリをマウントするために見て、[完了]をクリックします

次に、新しいボリュームの追加]をクリックします

ミラー化ストレージプールを追加します、ISOをクリックし、往路の選択/データ/ VISO

ここに画像を挿入説明

作成したら、閉じる→ファイルの左上隅をクリックすることができます

仮想ファイル・システム・マネージャの左上隅に新規仮想マシンを選択します

ローカルにインストールされているオペレーティングシステムのインストール、[転送]をクリックします

ここに画像を挿入説明

使用して、ISOイメージ:ボリュームを選択する]をクリックし、鏡を見つけ、ISOストレージプールを選択し、[参照]をクリックします

ここに画像を挿入説明

そして、フォワードをクリックし、メモリは2048を入力し、[転送]をクリックします

ここに画像を挿入説明

選択または作成したカスタムストレージを、管理]をクリックし、ディスク・ストレージ・プールを選択し、クリックする前に、ボリューム、ボリュームを選択する]をクリックします

ここに画像を挿入説明

そして、進むをクリックし、[完了]をクリックし、その後のCentos7インタフェースのインストールを入力します。

ここに画像を挿入説明

この時点で、KVM仮想化が成功したテストをデプロイメント!

おすすめ

転載: blog.51cto.com/14464303/2460057