H3CVNFManager(简称VNFM)是H3C推出的一款VNF管理系统,以OpenStack作为VIM(VirtualizedInfrastructureManager)层,对主机上的VNF进行管理。因此,用户使用H3CVNFManager对主机上的VNF进行管理之前,需要首先部署OpenStack环境。
图1-1OpenStack环境
一台主机可以部署成一个控制节点或一个计算节点。用户也可将控制节点和一个计算节点部署在同一台主机上。H3C推荐您将控制节点和计算节点部署在不同的主机上。
表2-1OpenStack环境部署条件
项目
配置需求
CPU
支持VT-x/VT-d技术的AMD64(x86-64)架构,4核及以上
内存
8G及以上
硬盘
32G及以上
网卡
控制节点主机至少1个网络接口;计算节点主机至少2个网络接口
主机可以是物理服务器,也可以是虚拟机,H3C推荐您将物理服务器作为主机。
图3-1部署流程图
本节以硬件平台H3CFlexServerR390为例,说明部署OpenStack的服务器BIOS的配置过程(其它服务器型号请咨询服务器提供商)。
图3-2使能CPU的虚拟化技术
图3-3使能CPU的VT-d技术
图3-4使能SR-IOV技术
·自动安装会格式化整个硬盘,硬盘的数据请提前备份。
·安装完成后,系统会自动重启。
图3-5进入远程控制台
图3-6挂载ISO镜像文件
图3-7完成ISO镜像文件挂载
(4)启动服务器,在服务器POST期间按
图3-8BootMenu界面
图3-9按任意键使服务器从光驱启动
图3-10自动安装CentOS
(1)在CentOS系统的命令提示符界面执行mount/dev/sr0/mnt命令挂载镜像文件。
[root@CentOS7Kilo~]#mount/dev/sr0/mnt/
mount:/dev/sr0iswrite-protected,mountingread-only
(2)由于OpenStack所使用的数据库等配置文件对于主机名称有依赖,因此OpenStack节点部署成功后,不能修改主机名称。为了便于用户更灵活的规划主机名称,根据主机名称中是否存在大写字母,提供了如下两种部署方式。
·当规划的主机名称中无大写字母时,可以采用如下方式部署:
执行/mnt/install_controller_node.shmanagement-ip-addressmaskgateway-ip-addresscontroller_node_hostname命令部署控制节点。
?management-ip-address:管理口的IP地址,为点分十进制格式。此处以192.168.12.11为例。
?mask:管理口IP地址相应的子网掩码,为点分十进制格式。此处以255.255.0.0为例。
?gateway-ip-address:管理口默认的网关地址,为点分十进制格式。此处以192.168.255.250为例。
?controller_node_hostname:控制节点主机名称。此处输入的主机名称无法识别大写,即输入大写字母时,也以小写字母生效。此处以ctrl1为例。
[root@CentOS7Kilo~]#/mnt/install_controller_node.sh192.168.12.11255.255.0.0
192.168.255.250ctrl1
====================1.DisableNetworkManager====================
rm'/etc/systemd/system/multi-user.target.wants/NetworkManager.service'
rm'/etc/systemd/system/dbus-org.freedesktop.NetworkManager.service'
rm'/etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service'
====================2.Disablefirewall====================
====================3.Confignetwork====================
====================4.Mount/dev/cdromto/mnt/====================
====================5.Configyumsource====================
====================6.Installpackstack====================
Loadedplugins:fastestmirror
……略……
·当规划的主机名称中存在大写字母时,可以采用如下方式部署:
a.通过vi编辑器打开hostname文件,按[i]键进入编辑模式,修改hostname文件中的主机名称,此处以CTRL1为例
[root@CentOS7Kilo~]#vi/etc/hostname
CTRL1
b.修改完成后,按[ESC]键退出编辑模式,再输入:wq,按回车,保存hostname文件并退出vi编辑器。
:wq
c.确认主机名称修改是否已生效,如果未生效请重启主机。一般物理服务器可以立即生效,虚拟机则需要重启后才能生效。
[root@CentOS7Kilo~]#reboot
d.执行/mnt/install_controller_node_withoutHostname.shmanagement-ip-addressmaskgateway-ip-address命令部署控制节点。
-management-ip-address:管理口的IP地址,为点分十进制格式。此处以192.168.12.11为例。
-mask:管理口IP地址相应的子网掩码,为点分十进制格式。此处以255.255.0.0为例。
-gateway-ip-address:管理口默认的网关地址,为点分十进制格式。此处以192.168.255.250为例。
[root@CTRL1~]#/mnt/install_controller_node_withoutHostname.sh192.168.12.11255.255.0.0192.168.255.250
·整个部署过程需要15分钟左右,请不要按Ctrl+C终止部署。
·系统默认第一个物理接口为管理口。
·部署完成后,/root目录下会生成一份packstack.txt文件,用于后续扩展计算节点。请不要手动编辑、移动或删除该文件。
部署结束后,系统会自动重启,重启后控制节点部署完成。
执行/mnt/install_compute_node.shmanagement-ip-addressmaskgateway-ip-addresscontroller-ip-addresscompute_node_hostname命令部署计算节点。
?management-ip-address:管理口的IP地址,为点分十进制格式。此处以192.168.12.32为例。
?controller-ip-address:控制节点的管理IP地址,为点分十进制格式。此处以192.168.12.11为例。
?compute_node_hostname:计算节点主机名称,此处输入的主机名称无法识别大写,即输入大写字母时,也以小写字母生效。建议计算节点使用统一规划的主机名称,如“compute1、compute2…compute10”,此处以“compute1”为例。OpenStack计算节点会使用主机名称作为数据库的访问标识,因此各节点的主机名称必须唯一。
[root@CentOS7Kilo~]#/mnt/install_compute_node.sh192.168.12.32255.255.0.0192.168.255.250192.168.12.11compute1
base|3.8kB00:00:00
epel|3.8kB00:00:00
(1/4):base/group_gz|157kB00:00:00
(2/4):epel/group_gz|157kB00:00:00
(3/4):base/primary_db|992kB00:00:00
(4/4):epel/primary_db|992kB00:00:00
在部署过程中,计算节点需要与控制节点通信,请在如下提示框弹出后手动输入相应参数:
a.当询问是否连接控制节点主机时,请输入yes。
====================7.InstallOpenstackbypackstack====================
sftpgetpackstack.txtfromcontroller
Theauthenticityofhost'192.168.12.11(192.168.12.11)'can'tbeestablished.
ECDSAkeyfingerprintis33:e2:b1:d8:ac:57:77:53:c6:61:38:cf:b9:41:e9:ad.
Areyousureyouwanttocontinueconnecting(yes/no)
root@192.168.12.11'spassword:
a.通过vi编辑器打开hostname文件,按[i]键进入编辑模式,修改hostname文件中的主机名称,此处以COMPUTE1为例
COMPUTE1
d.执行/mnt/install_compute_node_withoutHostname.shmanagement-ip-addressmaskgateway-ip-addresscontroller-ip-address命令部署计算节点。
-management-ip-address:管理口的IP地址,为点分十进制格式。此处以192.168.12.32为例。
-controller-ip-address:控制节点的管理IP地址,为点分十进制格式。此处以192.168.12.11为例。
[root@COMPUTE1~]#/mnt/install_compute_node_withoutHostname.sh192.168.12.32255.255.0.0192.168.255.250192.168.12.11
部署结束后,系统会自动重启,重启后计算节点部署完成。
部署控制节点和计算节点一体主机是指将控制节点和一个计算节点部署在同一台主机上,具体方法如下:
(2)执行/mnt/install_all_in_one.shmanagement-ip-addressmaskgateway-ip-address命令部署控制节点和一个计算节点。
[root@CentOS7Kilo~]#/mnt/install_all_in_one.sh192.168.12.11255.255.0.0192.168.255.250
部署结束后,系统会自动重启,重启后控制节点和一个计算节点部署完成。
由于不同计算节点物理网卡名称、编号或连线可能并不完全一致,当OpenStack通过控制节点在计算节点上创建虚拟机时,控制节点无法预先判断计算节点上的哪张网卡是该虚拟机所要接入的。为了对控制节点屏蔽不同计算节点物理网卡名称、编号或连线的差异,OpenStack将网络抽象为逻辑网络(network)、物理网络(provider-network)和网卡(device)三个层次。在控制节点上配置逻辑网络与物理网络的映射关系,在计算节点上配置物理网络与网卡的映射关系,并且确保相同物理网络的网卡之间物理连通,这时,用户请求分配虚拟机只需告诉控制节点该虚拟机所要接入的逻辑网络,控制节点会自动选择出满足网络映射要求的计算节点。
图3-11OpenStack网络结构
a.在控制节点上执行neutronnet-list命令显示当前所有网络。其中,name列显示的是逻辑网络名称。
[root@ctrl1~]#neutronnet-list
+--------------------------------------+--------+---------+
|id|name|subnets|
|4a89379d-f595-4031-94c9-c987ca0ca2a3|ens192||
|bb72474f-17a4-4821-aa20-32668fbc4de5|ens160||
b.执行neutronnet-show{name|id}命令查看指定网络的详细信息。其中,name字段是逻辑网络名称,provider:physical_network字段是物理网络名称。
[root@ctrl1~]#neutronnet-showens192
+---------------------------+--------------------------------------+
|Field|Value|
|admin_state_up|True|
|id|4a89379d-f595-4031-94c9-c987ca0ca2a3|
|mtu|0|
|name|ens192|
|provider:network_type|flat|
|provider:physical_network|phy_ens192|
|provider:segmentation_id||
|router:external|True|
|shared|True|
|status|ACTIVE|
|subnets||
|tenant_id|9e3928e0dbec45edb38f49b0cb728bf5|
(2)通过如下新增和删除映射关系的方法修改逻辑网络与物理网络的映射关系。
·新增映射关系:
首先确保kilo-version.iso(version为版本号)镜像文件已挂载,然后执行/mnt/createNetwork.shnetwork-nameprovider-network-name命令新增逻辑网络与物理网络的映射关系。
图3-12VNF接口绑定
?provider-network-name:物理网络名称。计算节点中配置了物理网络和网卡的映射关系,控制节点通过逻辑网络查找到对应的物理网络,进而映射到具体计算节点的网卡。
[root@ctrl1~]#/mnt/createNetwork.shSRIOV_1phy_ens3f0
Createdanewnetwork:
|id|58cb9099-9798-4f70-8607-215ec34bfdf0|
|name|SRIOV_1|
|provider:physical_network|phy_ens3f0|
|tenant_id|89f4d7e83cd94c4aa7e1f7066bb70ba1|
·删除映射关系:
执行neutronnet-delete{name|id}命令删除指定的映射关系。
[root@ctrl~]#neutronnet-deleteens160
Deletednetwork:ens160
·计算节点缺省映射关系中的物理网络名称一般是网卡名称前加“phy_”,比如网卡ens1缺省映射的物理网络为phy_ens1。如果不同计算节点的网卡名称或编号不同,各自缺省的物理网络名称也不同。用户可以手动修改物理网络名称,使得不同计算节点上不同名称或编号的网卡映射到同一物理网络,比如将计算节点1上的eth0映射到物理网络phy_net1,将计算节点2上的ens1也映射到物理网络phy_net1,则两块不同名称和编号的网卡就映射到了同一物理网络。
·各计算节点上映射到同一物理网络的网卡之间应该是物理连通的。
·同一计算节点上不能同时存在2块或以上网卡映射到同一物理网络。
(1)查看计算节点网卡信息,确定需要映射的网卡名称和编号。
[root@compute1~]#ifconfig
(2)通过vi编辑器打开/etc/neutron/plugins/ml2/ml2_conf_sriov.ini文件,按[i]键进入编辑模式,找到physical_device_mappings选项,配置物理网络和SR-IOV网卡的映射关系。此处以物理网络phy_ens3f0与SR-IOV网卡ens1f0映射,物理网络phy_ens3f1与SR-IOV网卡ens1f1映射为例。
[root@compute1~]#vi/etc/neutron/plugins/ml2/ml2_conf_sriov.ini
physical_device_mappings=phy_ens3f0:ens1f0,phy_ens3f1:ens1f1
(3)修改完成后,按[ESC]键退出编辑模式,再输入:wq,按回车,保存文件并退出vi编辑器。
(4)通过vi编辑器打开/etc/nova/nova.conf文件,按[i]键进入编辑模式,将物理网络与SR-IOV网卡的对应关系加入PCI白名单。
[root@compute1~]#vi/etc/nova/nova.conf
pci_passthrough_whitelist=[{"devname":"ens1f0","physical_network":"phy_ens3f0"},{"devname":"ens1f1","physical_network":"phy_ens3f1"}]
(5)修改完成后,按[ESC]键退出编辑模式,再输入:wq,按回车,保存文件并退出vi编辑器。
(6)重启Nova和Sriov_Agent服务。
[root@compute1~]#systemctlrestartopenstack-nova-compute.service
[root@compute1~]#systemctlrestartneutron-sriov-nic-agent.service
(2)通过vi编辑器打开/etc/neutron/plugins/linuxbridge/linuxbridge_conf.ini文件,按[i]键进入编辑模式,找到physical_interface_mappings选项,配置物理网络和网卡的映射关系。此处以物理网络phy_ens160与网卡ens160映射,物理网络phy_ens192与网卡ens192映射为例。
[root@compute1~]#vi/etc/neutron/plugins/linuxbridge/linuxbridge_conf.ini
physical_interface_mappings=phy_ens160:ens160,phy_ens192:ens192
(4)重启Linuxbridge服务。
[root@compute1~]#systemctlrestartneutron-linuxbridge-agent.service
[root@ctrl1~]#systemctl|grepnova
openstack-nova-api.service
loadedactiverunningOpenStackNovaAPIServer
openstack-nova-cert.service
loadedactiverunningOpenStackNovaCertServer
openstack-nova-conductor.service
loadedactiverunningOpenStackNovaConductorServer
openstack-nova-consoleauth.service
loadedactiverunningOpenStackNovaVNCconsoleauthServer
openstack-nova-novncproxy.service
loadedactiverunningOpenStackNovaNoVNCProxyServer
openstack-nova-scheduler.service
loadedactiverunningOpenStackNovaSchedulerServer
[root@ctrl1~]#systemctl|grepneutron
neutron-server.service
loadedactiverunningOpenStackNeutronServer
[root@compute1~]#systemctl|grepnova
openstack-nova-compute.service
loadedactiverunningOpenStackNovaComputeServer
[root@compute1~]#systemctl|grepneutron
neutron-linuxbridge-agent.service
loadedactiverunningOpenStackNeutronLinuxBridgeAgent
neutron-sriov-nic-agent.service
loadedactiverunningOpenStackNeutronSR-IOVNICAgent
(5)在控制节点上通过novahypervisor-list命令查看计算节点是否已和控制节点建立连接。
[root@ctrl1~]#novahypervisor-list
+----+---------------------+-------+----------+
|ID|Hypervisorhostname|State|Status|
|1|compute1|up|enabled|
(6)在控制节点上通过neutronagent-list命令查看计算节点上的NeutronAgent是否已开启。(NICSwitchagent的显示信息与是否存在SR-IOV网卡有关,请以实际情况为准)。
[root@ctrl1~]#neutronagent-list
+--------------------------------------+--------------------+----------+-------+
----------------+---------------------------+
|id|agent_type|host|alive|
admin_state_up|binary|
|16ddb978-950c-43bf-b54e-94175192e0e6|Linuxbridgeagent|compute1|:-)|
True|neutron-linuxbridge-agent|
|1700b63b-6cf1-4963-b7da-cc2eef992cc5|NICSwitchagent|compute1|:-)|
True|neutron-sriov-nic-agent|
·management-ip-address为管理口的IP地址;
·17500为缺省端口号。
不同款型规格的资料略有差异,详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!