使用Flat Network Provider搭建扁平网络教程

1. 介绍

19143915_p5qM.png

扁平网络在私有云网络环境中非常的流行。它的网络拓扑很简单,所有的云主机都是直接接在公司内部的一个大二层的网络上。 扁平网络也非常容易搭建。由于所有的云主机和物理主机都在一个二层广播域,在这个二层网络上的云主机可以 通过数据中心的核心路由器链接到Internet。在这个教程里,我们假定您拥有一个可以访问Internet的IP网络。

在本教程中,我们将使用ZStack 1.0的新特性:Flat Network Provider来创建扁平网络。Flat Network Provider是一种新的网络服务提供模式,它提供DHCP和Userdata服务。相对于已有的Virtual Router Provider,Flat Network Provider最大的优势在于不需要启动一个Virtual Router虚拟机就可以为VM提供DHCP服务,这大大简化了部署一个扁平网络的复杂度。此外,由于采用了分布式DHCP系统,Flat Network Provider不存在传统DHCP系统的单点失败情况,因为每个物理机上都会有一个DHCP服务器服务运行在该物理机上的VM。在高并发创建或启动VM的时候,DHCP的负载会被分发到不同物理机上去,大大提供了系统整体的并发性。其总体架构如下:

19143916_njgo.png

2. 前提

我们假定您已经根据安装手册里的方法成功的安装并且启动了ZStack。 您可以在Chrome浏览器或者FireFox浏览器(IE浏览器可能会遇到使用问题)上打开如下地址来登录ZStack管理界面:

http://your_machine_ip:5000/

我们假定您的这台Linux服务器只有一个网卡,并且它可以链接到互联网。除此之外,我们还需要如下的要求:

  • 至少20G可用的硬盘剩余空间用于基本的主存储和备份存储

  • 有几个可以使用的公网的IP地址

  • 有一个启动的NFS服务器NFS (如果在安装ZStack的时候使用了-a或者-n的参数,ZStack安装程序会在本机启动一个NFS服务,默认是在/usr/local/zstack/nfs_root/。但是我们还是建议用户自己可以配置一个单独的NFS服务,例如/my_nfs_folder)

  • 可以使用root用户 ssh到本机

配置root用户的ssh登录能力

KVM节点需要root用户的SSH权限来使用Ansible安装系统包和控制KVM Agent。本教程里面只使用了单一的Linux 服务器作为操作对象,您需要提前配置root用户的SSH访问能力。

CentOS:
sudo su
passwd root
Ubuntu:

您需要修改SSHD的配置文件:

1. sudo su
2. passwd root
3. 编辑/etc/ssh/sshd_config
4. 注释掉 'PermitRootLogin without-password'
5. 添加'PermitRootLogin yes'
6. 重启 SSHD: 'service ssh restart'

基于以上的环境要求,我们假设有如下的配置信息:

  • 网卡设备: eth0

  • eth0 IP: 192.168.0.212

  • 其他空闲的IP地址范围: 192.168.0.230 ~ 192.168.0.240

  • 主存储目录: /usr/local/zstack/nfs_root

  • 备份存储目录: /backupStorage

停止云主机可能会等1分钟,如果云主机镜像里没有配置ACPID:

尽管我们的教程里不会演示停止云主机的功能,但是您可能自己在尝试的时候会发现启动一个云主机只需要1秒钟, 但是停止一个云主机可能会需要1分钟时间。这是因为我们特殊裁剪过的ttylinux的云主机模板中没有ACPID相关的服务。 ZStack发出Stop指令后,云主机的操作系统并不会接收这样的指令。ZStack在等待1分钟后会强行的停止这个云主机。 如果用户自己的云主机模板也存在类似的问题,那么最好求助于操作系统提供商解决相关的问题。


3. 登录

在Chrome浏览器或者FireFox浏览器(IE浏览器可能会遇到使用问题)上登录ZStack管理界面: 默认的用户名和密码分别为admin/password:

19143916_NFQ6.png


4. 创建Zone

点击左侧面板的'Zone':

19143917_jvz1.png


点击按钮'New Zone'来打开对话框:

19143918_ru3E.png


给第一个Zone取一个名字:'ZONE1',然后点击按钮'Create':

19143918_1wV9.png


5. 创建Cluster

点击左侧面板的'Cluster':

19143919_5rIn.png


点击按钮'New Cluster'来打开对话框:

19143920_l5pQ.png


选择刚刚创建的zone(ZONE1); 给cluster取个名字:'CLUSTER1'; 然后选择hypervisor 'KVM';接着点击按钮'Next':

19143920_LLbF.png


我们现在还没有任何的主存储,让我们继续点击'Next':

19143921_CYUf.png


我们现在还没有任何的L2网络,让我们直接点击'Create':

19143922_83Vo.png


6. 添加计算节点Host

点击左侧面板的'Host':

19143923_eRW1.png


点击按钮'New Host'打开对话框:

19143923_ajRF.png


  1. 选择zone(ZONE1)和cluster(CLUSTER1)

  2. 给host取个名字:'HOST1'

  3. 输入host的IP地址(192.168.0.212)

  4. 最重要的是输入host root用户的用户名和密码

  5. 点击'add'

19143924_KEIv.png

第一次添加Host可能会较慢

基于用户的网络环境,第一次添加Host可能需要等待几分钟的时间。ZStack会安装好所有的依赖包和完成自动化的配置。


7. 添加主存储

点击左侧面板的'Primary Storage':

19143925_75W2.png


点击按钮'New Primary Storage'来打开对话框:

19143926_KFj3.png


  1. 选择zone(ZONE1)

  2. 给主存储取个名字:'PRIMARY-STORAGE1'

  3. 选择类型'NFS'

  4. 输入NFS url(例如192.168.0.212:/usr/local/zstack/nfs_root)

  5. 点击'Next'

NFS URL的格式

NFS URL的格式和在Linux中使用mount命令非常的相似.

19143926_Y9Vc.png


选择cluster(CLUSTER1)作为挂载对象, 然后点击按钮'Add':

19143927_GiNJ.png

Add会执行多条实际的ZStack APIs

如果一切顺利,您会看到两个APIs完成的通知:addPrimaryStorage和attachPrimaryStorageToCluster.


8. 添加备份存储

点击左侧面板的'Backup Storage':

19143929_2S4z.png


点击按钮'New Backup Storage'来打开对话框:

19143929_IG99.png


  1. 给备份存储取名为:'BACKUP-STORAGE1'

  2. 选择类型'SftpBackupStorage'

  3. 输入URL '/backupStorage' (如果该目录不存在,ZStack会负责创建该目录)

  4. 输入本机IP地址(192.168.0.212)

  5. 输入root用户的ssh密码

  6. 点击'Next'

19143930_IVmK.png


选择zone(ZONE1)作为挂载对象,然后点击'Add':

19143931_chFu.png


9. 添加云主机磁盘镜像

点击左侧面板的'Image':

19143932_aNaH.png


点击'New Image'来打开对话框:

19143932_ocsT.png


  1. 选择备份存储(BACKUP-STORAGE1)

  2. 给磁盘镜像取名为'ttylinux'

  3. 选择格式'qcow2'

  4. 选择媒体类型为'RootVolumeTemplate'

  5. 选择平台'Linux'

  6. 输入下载地址 http://download.zstack.org/templates/zstack-image-0.0.7.qcow2

  7. 点击'Add' (不能选择'System')

该镜像文件将会用于用户云主机的模板。

19143933_nAHc.png


预先下载磁盘镜像文件在本地的HTTP服务器

如果您的虚拟机模板比较大,您最好也把它存放在本地的HTTP服务器上,这样添加image的速度比较快。避免因网络速度问题引起的添加image超时。 默认情况下,添加Image的时间超过30分钟,ZStack会自动中断添加的过程并报告超时。


10. 创建二层网络

点击左侧面板的'L2 Network':

19143934_unFq.png


点击按钮'New L2 Network':

19143934_KA5Y.png


  1. 选择zone(ZONE1)

  2. 给二层网络取个名字'FLAT-L2'

  3. 选择类型'L2NoVlanNetwork'

  4. 输入物理网卡的名字'eth0'

  5. 点击'Next'

19143935_w6cP.png


选择cluster(CLUSTER1)作为挂载对象,然后点击'Create':

19143935_WDUx.png


11. 创建三层网络

点击左侧面板的'L3 Network':

19143936_E88O.png


点击'New L3 Network':

19143937_owkE.png


  1. 选择zone(ZONE1)

  2. 选择二层网络(FLAT-L2)

  3. 给三层网络取名为'FLAT-L3'

  4. 选择类型'L3BasicNetwork'

  5. 输入域名:'tutorials.zstack.org'

  6. 点击'Next' (不要选择System)

19143937_zdYJ.png


  1. 命名IP range:'FLAT-IP-RANGE'

  2. 选择添加方法:'Add By IP Range'

  3. 输入起始IP地址 '192.168.0.230'

  4. 输入结束IP地址'192.168.0.240'

  5. 输入子网掩码 '255.255.255.0'

  6. 输入网关 '192.168.0.1'

  7. 点击 'Add' 来添加一个 IP range

  8. 点击 'Next'

19143938_BynF.png


输入'8.8.8.8'(您也可以输入国内的DNS,例如114.114.114.114),然后点击'Add'来添加一个DNS服务器,接着点击'Next':

19143938_nDu3.png


  1. 选择“Flat Network Service Provider"做为网络服务提供商

  2. 选择DHCP服务

  3. 点击“添加”按钮

  4. 重复步骤2和3添加user data服务

最后点击'Create':

19143939_AdvN.png


12. 创建云主机模板

点击左边面板的'Instance Offering':

19143940_uFEn.png


点击'New Instance Offering':

19143940_1jBs.png


  1. 给模板取个名字'512M-512HZ'

  2. 输入CPU个数为1

  3. 输入CPU速度1

  4. 输入内存大小512M

  5. 点击'create'

19143941_jTN0.png

如果使用ttylinux的磁盘镜像来创建虚拟机,该虚拟机的最低内存需求量仅需要24MB。用户可以只创建一个24MB的模板。


14. 创建云主机

点击左边面板的'Instance':

19143941_WeeO.png


点击'New VmInstance':

19143942_YDkv.png


  1. 选择模板'512M-512HZ'

  2. 选择磁盘镜像'ttylinux'

  3. 选择三层网络'FLAT-L3',并且点击'Add'

  4. 输入云主机的名字'VM1'

  5. 输入云主机的网络名字: 'vm1'

  6. 点击'Next'

19143943_UYlj.png


点击 'Create':

19143943_etQq.png

启动第一个云主机会花费较长的时间

当第一次创建云主机的时候,ZStack需要把云主机的磁盘镜像从备份存储下载到主存储中来,根据不同磁盘镜像的大小, 它可能需要一段时间。当第一个云主机创建好后,再次创建云主机将会非常快速。


当云主机创建完成,点击'Action',再点击'Console'来打开云主机的终端(需要在浏览器上允许弹出窗口):

19143944_R1AU.png

在弹出的窗口中,用root用户的password密码来登录ttylinux。登录后,您可以用'hostname'来查看主机名, 用'ifconfig'来检查IP地址是不是属于扁平网络的地址。

19143944_R78T.png


您应该可以成功的ping www.baidu.com:

19143945_OgWT.png


重复以上步骤来创建更多的VM2和VM3。他们应该都可以获得IP地址并且顺利访问Internet。

19143946_aOrh.png

后续的云主机创建过程会非常的快

由于第一次创建云主机时,ZStack已经把云主机的磁盘放到了缓存中,所以后续的云主机添加的过程通常不会超过2秒。

总结

在这个教程里,我们展示了如何快速的使用ZStack来搭建一个扁平网络环境。关于ZStack更多的三层网络的介绍, 您可以登录L3 Network in user manual来查阅。


转载于:https://my.oschina.net/Weltch/blog/617644

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值