Learning KVM - part3 配置KVM存储共享池

上一章节我们安装了KVM和KVM管理工具,接下来我们配置KVM宿主机(hosts)为虚拟机(guests)提供网络以及存储资源。
KVM安装完成后默认会虚拟机(guests)创建文件系统/var/lib/libvirt/images,如果您打算在宿主机(hosts)之间迁移VM(guests)的话,你需要配置共享存储,例如NFS、NAS或Ceph等。
同时你必须配置网桥,以便VM能够与外部通讯。接下来我们将描述如何配置网桥以及如何为VM及镜像创建存储资源池。

如何配置网桥

如果您发现您的机器上有"virbr0"网卡,您可以使用命令virsh net-destroy default去删除它或者选择忽略,这个网卡是KVM安装时自动创建的NAT网卡。
下面我们来手动配置网桥桥接到网卡"eth1",步骤如下:

  1. 登录到宿主机,检查网络配置;
    [root@localhost ~]# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
        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 00:0c:29:f5:9f:b2 brd ff:ff:ff:ff:ff:ff
        inet 192.168.88.144/24 brd 192.168.88.255 scope global dynamic eth0
           valid_lft 1248sec preferred_lft 1248sec
        inet6 fe80::ec2f:eb00:c9f6:4250/64 scope link
           valid_lft forever preferred_lft forever
    3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 00:0c:29:f5:9f:bc brd ff:ff:ff:ff:ff:ff
        inet 192.168.57.254/24 brd 192.168.57.255 scope global eth1
           valid_lft forever preferred_lft forever
        inet6 fe80::e096:d49b:5afe:d1ca/64 scope link
           valid_lft forever preferred_lft forever
    
  2. 配置网卡"eth1"桥接网桥;
    [root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth1
    [root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1
    TYPE=Ethernet
    BOOTPROTO=static
    IPV4_FAILURE_FATAL=no
    NAME=eth1
    DEVICE=eth1
    ONBOOT=yes
    BRIDGE=br0
    
  3. 创建网桥"br0"的配置文件;
    [root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-br0
    [root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-br0
    TYPE="Bridge"
    DEVICE=br0
    BOOTPROTO=static
    IPADDR=192.168.57.254
    NETMASK=255.255.255.0
    ONBOOT="yes"
    DELAY=0
    STP=0
    
  4. 开启ipv4路由转发功能;
    [root@localhost ~]# grep "net.ipv4.ip_forward" /etc/sysctl.conf || echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
    [root@localhost ~]# sysctl -p
    net.ipv4.ip_forward = 1
    
  5. 重启网络服使网桥"br0"配置生效;
    [root@localhost ~]# systemctl network restart
    Unknown operation 'network'.
    [root@localhost ~]# systemctl restart network
    [root@localhost ~]# systemctl status network
    ● network.service - LSB: Bring up/down networking
       Loaded: loaded (/etc/rc.d/init.d/network; bad; vendor preset: disabled)
       Active: active (exited) since Thu 2017-06-08 14:37:50 CST; 6s ago
         Docs: man:systemd-sysv-generator(8)
      Process: 6568 ExecStop=/etc/rc.d/init.d/network stop (code=exited, status=0/SUCCESS)
      Process: 6793 ExecStart=/etc/rc.d/init.d/network start (code=exited, status=0/SUCCESS)
    
    Jun 08 14:37:49 localhost.localdomain systemd[1]: Starting LSB: Bring up/down networking...
    Jun 08 14:37:49 localhost.localdomain network[6793]: Bringing up loopback interface:  [  OK  ]
    Jun 08 14:37:50 localhost.localdomain network[6793]: Bringing up interface eth0:  Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)
    Jun 08 14:37:50 localhost.localdomain network[6793]: [  OK  ]
    Jun 08 14:37:50 localhost.localdomain network[6793]: Bringing up interface eth1:  Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
    Jun 08 14:37:50 localhost.localdomain network[6793]: [  OK  ]
    Jun 08 14:37:50 localhost.localdomain network[6793]: Bringing up interface br0:  [  OK  ]
    Jun 08 14:37:50 localhost.localdomain systemd[1]: Started LSB: Bring up/down networking.
    [root@localhost ~]# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
        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 00:0c:29:f5:9f:b2 brd ff:ff:ff:ff:ff:ff
        inet 192.168.88.144/24 brd 192.168.88.255 scope global dynamic eth0
           valid_lft 1786sec preferred_lft 1786sec
        inet6 fe80::ec2f:eb00:c9f6:4250/64 scope link
           valid_lft forever preferred_lft forever
    3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP qlen 1000
        link/ether 00:0c:29:f5:9f:bc brd ff:ff:ff:ff:ff:ff
    4: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
        link/ether 00:0c:29:f5:9f:bc brd ff:ff:ff:ff:ff:ff
        inet 192.168.57.254/24 brd 192.168.57.255 scope global br0
           valid_lft forever preferred_lft forever
        inet6 fe80::20c:29ff:fef5:9fbc/64 scope link
           valid_lft forever preferred_lft forever
    
  6. 检查网桥信息,看上去“br0”已经桥接到“eth1”了;
    [root@localhost ~]# brctl show
    bridge name bridge id       STP enabled interfaces
    br0     8000.000c29f59fbc   no      eth1
    

配置存储资源池

KVM默认的存储资源池的路径为/var/lib/libvirt/images
用户没有强要求使用共享存储来存储镜像(images),配置共享存储能够很方便实现在宿主机之间迁移vm的功能,KVM已经支持vm热迁移功能,这点类似于VMware的vmotion功能。
KVM支持多种共享存储做为存储资源池。
本章我们使用NFS,首先我们来搭建一个NFS环境。

NFS环境搭搭建

# 安装nfs rpm包
[root@nfs-server ~]# yum install -y nfs-utils
# 配置共享目录,允许本网段访问
[root@nfs-server ~]# mkdir /images
[root@nfs-server ~]# echo -e "/images\t192.168.57.0/24(rw,no_root_squash)" > /etc/exports
# 启动NFS服务
[root@nfs-server ~]# systemctl enable rpcbind nfs-server
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
[root@nfs-server ~]# systemctl start rpcbind nfs-server
[root@nfs-server ~]# systemctl status rpcbind nfs-server
● rpcbind.service - RPC bind service
   Loaded: loaded (/usr/lib/systemd/system/rpcbind.service; indirect; vendor preset: enabled)
   Active: active (running) since Thu 2017-06-08 15:38:46 CST; 15s ago
  Process: 3461 ExecStart=/sbin/rpcbind -w $RPCBIND_ARGS (code=exited, status=0/SUCCESS)
 Main PID: 3467 (rpcbind)
   CGroup: /system.slice/rpcbind.service
           └─3467 /sbin/rpcbind -w

Jun 08 15:38:46 nfs-server systemd[1]: Starting RPC bind service...
Jun 08 15:38:46 nfs-server systemd[1]: Started RPC bind service.

● nfs-server.service - NFS server and services
   Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled; vendor preset: disabled)
   Active: active (exited) since Thu 2017-06-08 15:38:57 CST; 5s ago
  Process: 3473 ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS (code=exited, status=0/SUCCESS)
  Process: 3472 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
 Main PID: 3473 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/nfs-server.service

Jun 08 15:38:57 nfs-server systemd[1]: Starting NFS server and services...
Jun 08 15:38:57 nfs-server systemd[1]: Started NFS server and services.
# 放通防火墙
[root@nfs-server ~]# firewall-cmd --add-service=nfs --permanent
success
[root@nfs-server ~]# firewall-cmd --reload
success

KVM存储池配置

  1. 配置KVM宿主机连接NFS Server.

    [root@kvm-node1 ~]# yum install nfs-utils -y
    [root@kvm-node1 ~]# systemctl enable rpcbind && systemctl start rpcbind
    [root@kvm-node1 ~]# systemctl status rpcbind
    ● rpcbind.service - RPC bind service
       Loaded: loaded (/usr/lib/systemd/system/rpcbind.service; indirect; vendor preset: enabled)
       Active: active (running) since Thu 2017-06-08 15:56:56 CST; 16s ago
      Process: 8744 ExecStart=/sbin/rpcbind -w $RPCBIND_ARGS (code=exited, status=0/SUCCESS)
     Main PID: 8745 (rpcbind)
       CGroup: /system.slice/rpcbind.service
               └─8745 /sbin/rpcbind -w
    Jun 08 15:56:56 kvm-node1 systemd[1]: Starting RPC bind service...
    Jun 08 15:56:56 kvm-node1 systemd[1]: Started RPC bind service.
    [root@kvm-node1 ~]# mount -t nfs 192.168.57.200:/images /var/lib/libvirt/images
    [root@kvm-node1 ~]# df -hT
    Filesystem             Type      Size  Used Avail Use% Mounted on
    /dev/mapper/cl-root    xfs        17G  4.2G   13G  25% /
    devtmpfs               devtmpfs  478M     0  478M   0% /dev
    tmpfs                  tmpfs     489M   88K  489M   1% /dev/shm
    tmpfs                  tmpfs     489M  7.1M  482M   2% /run
    tmpfs                  tmpfs     489M     0  489M   0% /sys/fs/cgroup
    /dev/sda1              xfs      1014M  140M  875M  14% /boot
    tmpfs                  tmpfs      98M  8.0K   98M   1% /run/user/0
    192.168.57.200:/images nfs4       17G  4.2G   13G  25% /var/lib/libvirt/images
    [root@kvm-node1 ~]# echo -e "192.168.57.200:/images\t/var/lib/libvirt/images\tnfs\tdefaults\t0\t0" >> /etc/fstab
    
  2. 配置KVM存储资源池

    [root@kvm-node1 ~]# virsh pool-list
     Name                 State      Autostart
    -------------------------------------------
    
    [root@kvm-node1 ~]# virsh pool-build default
    Pool default built
    
    [root@kvm-node1 ~]# virsh pool-start default
    Pool default started
    
    [root@kvm-node1 ~]# virsh pool-list
     Name                 State      Autostart
    -------------------------------------------
     default              active     yes
    
    [root@kvm-node1 ~]# virsh pool-info default
    Name:           default
    UUID:           d84dc74b-b0f4-4197-92b0-d9025620f0a4
    State:          running
    Persistent:     yes
    Autostart:      yes
    Capacity:       16.99 GiB
    Allocation:     4.10 GiB
    Available:      12.88 GiB
    
    [root@kvm-node1 ~]# df -Th /var/lib/libvirt/images/
    Filesystem             Type  Size  Used Avail Use% Mounted on
    192.168.57.200:/images nfs4   17G  4.2G   13G  25% /var/lib/libvirt/images
    
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容