ãã®èšäºã§ã¯ãContrailã®æŠèŠãå©çšå¯èœãªåœ¢åŒãããã³Contrailãèªåã®ã©ãã«é 眮ããæ¹æ³ã«ã€ããŠç°¡åã«èª¬æããŸãã å ·äœçã«ã¯ãContrail Cloud 3.2.0ãã€ã³ã¹ããŒã«ããŸãã
Contrailã®åºæ¬
Contrailã解決ãã課é¡ã¯ãæè»ã§ã¹ã±ãŒã©ãã«ãªä»®æ³ãããã¯ãŒã¯ã®æ§ç¯ã§ãã ä»®æ³ãããã¯ãŒã¯ã¯å€ãè¯ãVLANã®ä»£æ¿ãšããŠç解ã§ããŸãããã®å Žåããããã€ããŒL3VPN / EVPNãšããŠã»ãŒå®è£ ãããŠããŸãã åæã«ãæ¥ç¶ãããã¯ã©ã€ã¢ã³ãã®èŠ³ç¹ããã¯ããã¹ãŠã®ä»®æ³ãã·ã³ãšç©çãµãŒããŒãéåžžã®ã¹ã€ãããä»ããŠæ¥ç¶ãããŠããããã«èŠããŸãã
Contrailãèšè¿°ããæãç°¡åãªæ¹æ³ã¯ããªãŒããŒã¬ã€SDNã§ãã ããã§ã®ãœãããŠã§ã¢å®çŸ©ãããã¯ãŒã¯ã¯ã ONFã®å€å žçãªå®çŸ©ãã€ãŸããã©ã¯ãŒãã£ã³ã°ãã¬ãŒã³ãšã³ã³ãããŒã«ãã¬ãŒã³ã®åé¢ãããã«ãã®å Žåã®Contrailã³ã³ãããŒã©ãŒã§ã®ã³ã³ãããŒã«ãã¬ãŒã³ã®éäžåãšããæå³ã§ç解ãããŠããŸãã
ããªãŒããŒã¬ã€ããšããèšèã¯ãå®éã«ã¯2ã€ã®ãããã¯ãŒã¯ãããããšã瀺ããŠããŸãã
- æ¥ç¶ãããç©çããã€ã¹ïŒãµãŒããŒãã²ãŒããŠã§ã€ã«ãŒã¿ãŒïŒéã®IPã¢ã¯ã»ã·ããªãã£ããã®ã¿ãä¿èšŒããããã«å¿ èŠãªç©ççãªãå·¥å Žããããã³
- ãªãŒããŒã¬ã€-ãµãŒããŒãšã²ãŒããŠã§ã€ã«ãŒã¿ãŒã®éã«æ·èšããããã³ãã«ã§æ§æããããããã¯ãŒã¯ã ãã³ãã«ã¯ãMPLS over UDPãMPLS over GREããŸãã¯VXLANïŒããã©ã«ãã§åªå é äœé ã«ãªã¹ããããŠããŸãããã¥ã¢ã³ã¹ã¯ãããŸããã䜿çšããããã³ãã«ã®ç¹å®ã®ã¿ã€ãã¯å®è£ ã®è©³çŽ°ã§ãïŒã
Contrail-controllerã¯ãããŒã¿ã»ã³ã¿ãŒãŸãã¯ãããã€ããŒã¯ã©ãŠãã§ä»®æ³åããããªãŒããŒã¬ã€ãããã¯ãŒã¯ã®ç®¡çã«åŸäºããŠãããå·¥å Žã«å¿ã³èŸŒãããšã¯ãããŸããã ããªãïŒãããã³ããªãæ£ç¢ºã«ïŒããšãã質åã«çããContrailã®åŒ·ã¿ã¯æ¬¡ã®ãšããã§ãã
- ã¹ã±ãŒã©ããªãã£-ã·ã¹ãã ã¯ãå®çžŸã®ããBGP / MPLS VPNãœãªã¥ãŒã·ã§ã³ãšåãåçã«åºã¥ããŠæ§ç¯ãããŠããŸãã
- æè»æ§-ä»®æ³ãããã¯ãŒã¯ã®æ§æãå€æŽããŠããç©çãããã¯ãŒã¯ãå€æŽããå¿ èŠã¯ãããŸããã ããã¯ããªãŒããŒã¬ã€ãšãã¹ããŒããšããž-ã·ã³ãã«ã³ã¢ããšããååã®äœ¿çšã®èªç¶ãªçµæã§ãã
- ããã°ã©ãããªãã£-ã¢ããªã±ãŒã·ã§ã³ã¯ãContrail APIãéããŠãããã¯ãŒã¯ãã·ã¹ãã ãšããŠç®¡çã§ããŸãã
- NFVïŒãããã¯ãŒã¯æ©èœã®ä»®æ³åïŒå¥åãµãŒãã¹ãã§ãŒã³ã¯éåžžã«éèŠãªåŽé¢ã§ãããæå®ãããä»®æ³åãããã¯ãŒã¯ãµãŒãã¹ïŒä»®æ³ãã¡ã€ã¢ãŠã©ãŒã«ããã£ãã·ã¥ãªã©ïŒãä»ããŠãã©ãã£ãã¯ãé§åã§ããŸãã åæã«ããžã¥ãããŒVNFïŒvSRXãvMXïŒãšä»ã®ãã³ããŒã®è£œåã¯ãŸã£ããåãã§ãã
- ãã¢ã³ããŒã¬ã€ãªãŒããŒã¬ã€ãããã³ã°ããå«ããçµæã®åŒ·åãªåæãšèŠèŠå-ããã¯ãä»®æ³ãããã¯ãŒã¯éã®ãã©ãã£ãã¯ãç©çãããã¯ãŒã¯äžã§ãå®éã«ãé²ãæ¹æ³ãContrailã瀺ããšãã§ãã
- ãªãŒãã³ãœãŒã¹-ãã¹ãŠã®ãœãŒã¹ã³ãŒãã¯ãªãŒãã³ã§ãããããã«æšæºãããã³ã«ã®ã¿ãããŒãã®çžäºäœçšã«äœ¿çšãããŸãã ãããžã§ã¯ãã®ãŠã§ããµã€ãã¯www.opencontrail.orgã§ãã
- æ¢åã®MPLS VPNãšã®ç°¡åãªçµ±åã
以äžã¯ãã·ã¹ãã å šäœãã©ã®ããã«æ©èœãããã瀺ãContrail Architectureãã¯ã€ãããŒããŒã®åçã§ãã
æäžäœã¬ãã«ã§ã¯ãã€ã³ãã©ã¹ãã©ã¯ãã£ãªãŒã±ã¹ãã©ãæ©èœããŠããŸããã»ãšãã©ã®å ŽåãOpenStackã«ãªããŸãïŒContrailãvCenterããã³Kubernetesãšçµ±åããããã®ãªãã·ã§ã³ããããŸãïŒã ãã®äžã§ããããã¯ãŒã¯ã¯é«ã¬ãã«ã®ã³ãã³ãïŒNeutron APIïŒãä»ããŠæ§æãããŸãããå®è£ ã®è©³çŽ°ã¯SDNã³ã³ãããŒã©ãŒã®é¢å¿äºã®ãŸãŸã§ãã
SDNã³ã³ãããŒã©ãŒèªäœã¯ãäž»ã«4ã€ã®ã¿ã€ãã®ããŒãã§æ§æãããŠããŸãã
- æ§æããŒã-REST APIããªãŒã±ã¹ãã¬ãŒã¿ãŒããã®ä»ã®ã¢ããªã±ãŒã·ã§ã³ã«æäŸãã圹å²ãæ ããŸãã èšå®ã®ãäžãããæ¥ãæ瀺ããã³ã³ãã€ã«ãããŸããç¹å®ã®ãããã¯ãŒã¯ã«äœã¬ãã«ã§é©çšãããŸãã
- å¶åŸ¡ããŒã-æ§æããŒãããæ§æãååŸããvRouter-sïŒä»¥äžãåç §ïŒããã³ç©çã«ãŒã¿ãŒãããã°ã©ã ããŸãã
- åæ-ã¹ã¬ããçµ±èšããã°ãªã©ãåéããããŒãã
- ããŒã¿ããŒã¹ïŒå³ã«ã¯è¡šç€ºãããŠããŸããïŒ-CassandraããŒã¿ããŒã¹ãã¢ããªã¹ããåéããæ§æãšæ å ±ãä¿åããŸãã
1ã€ã®ç©çïŒãŸãã¯ä»®æ³ïŒãµãŒããŒã§è€æ°ã®ããŒã«ãèµ·åã§ããŸããã©ãã§ã¯ããªãŒã«ã€ã³ã¯ã³ã³ã³ãããŒã©ãŒïŒããã«ã³ã³ãã¥ãŒãã£ã³ã°ããŒããåå¥ã«ïŒãäœæã§ããŸãã
転éã«ã€ããŠå°ã説æããŸãã ã·ã¹ãã å ã®ä»®æ³ãã·ã³ãŸãã¯ã³ã³ãããŒéã®ãã¹ãŠã®ãã©ãã£ãã¯ã¯ãvRouterãç©çã«ãŒã¿ãŒããŸãã¯OVSDBã¹ã€ããã§çµç«¯ããããã³ãã«ãééããŸãïŒããã§ã¯ãã®ãªãã·ã§ã³ãèæ ®ããŸããïŒã vRouterã¯ãœãããŠã§ã¢ã³ã³ããŒãã³ãïŒããã©ã«ãã§ã¯Linuxã«ãŒãã«ã¢ãžã¥ãŒã«ãDPDKã䜿çšããŠããå Žåã¯ãŠãŒã¶ãŒã¹ããŒã¹ïŒã§ãããContrailãœãªã¥ãŒã·ã§ã³ã®2çªç®ã«éèŠãªéšåã§ãïŒæåã¯ã³ã³ãããŒã©ãŒèªäœã§ãïŒã vRouter-sã¯ãã¯ã©ã¹ã¿ãŒïŒå³ã®ä»®æ³åãµãŒããŒïŒã®ã³ã³ãã¥ãŒãã£ã³ã°ããŒãã«ã€ã³ã¹ããŒã«ãããå®è¡ãããŸã-ãã·ã³/ã³ã³ãããŒãèµ·åãããã®ãšåãå Žæã
ç¹°ãè¿ããŸãããvRouterã®äž»ãªç®æšã¯ããªãŒããŒã¬ã€ãã³ãã«ãçµäºããããšã§ãã æ©èœããvRouterã¯ãMPLS VPNã®PEïŒãããã€ããŒãšããžïŒã«ãŒã¿ãŒã«å¯Ÿå¿ããŠããŸãã
äœãèµ·ããã®ãContrail
Contrailã䜿çšããããã®æ¬¡ã®ãªãã·ã§ã³ããããŸãïŒæ©èœãšã³ãŒãã¯ã©ãã§ãåãã§ããããµããŒããªãã·ã§ã³ã®ã¿ãç°ãªããŸãïŒã
- OpenContrailã¯ç¡æã§å©çšã§ãããªãã·ã§ã³ã§ãã ã€ã³ã¹ããŒã«ã«ã€ããŠã¯ã ã¯ã€ãã¯ã¹ã¿ãŒãã¬ã€ãã§èª¬æããŠããŸãã
- Contrail Networkingã¯ãJuniper TACããµããŒãããåçšãªãã·ã§ã³ã§ãã
- Contrail Cloudã¯ãContrailèªââäœãšCanonical / Ubuntu OpenStackã®äž¡æ¹ãå«ãåçšãªãã·ã§ã³ã§ã-ã©ã¡ããJuniper TACã§ãµããŒããããŠããŸãã
ããã«ãMirantisã®OpenContrailããµããŒããããªãã·ã§ã³ããããŸãã
ãã®èšäºã§ã¯ãæãæµæã®å°ãªãçµè·¯ããã©ããContrail Cloudã®ã€ã³ã¹ããŒã«æ¹æ³ã瀺ããŸãã
Contrail Cloudãã€ã³ã¹ããŒã«ãã
å·çæç¹ã§ææ°ããŒãžã§ã³ã®Contrail Cloud 3.2.0ãã€ã³ã¹ããŒã«ããŸãã ã€ã³ã¹ããŒã«ã«ã¯ã4ã³ã¢ã®ãã€ããŒã¹ã¬ããã£ã³ã°CPUãš32GB RAMãåãã1ã€ã®ESXi 6.0ãµãŒããŒã䜿çšããŸããã ããã¯ãããŒãžã³ããã£ãŠããã¹ãã«ã¯ååã§ãïŒvMXãããã€ãå®è¡ã§ããŸãïŒã
ä»®æ³å®éšå®€å³ã¯æ¬¡ã®ããã«ãªããŸãã
èšç®ããŒãïŒããã³ã³ã³ãããŒã©ãŒããŒãïŒã¯ãã©ãã§ä»®æ³åãããŠããŸããã€ãŸããä»®æ³ã³ã³ãã¥ãŒã¿ãŒã¯ä»ã®ä»®æ³ãã·ã³å ã§å®è¡ãããããšã«æ³šæããŠãã ããã ãã€ããŒãã€ã¶ãŒã®èšå®ã«ç§»åããããã«ããåã³ã³ãã¥ãŒãããŒãã®ãã²ã¹ãOSãžã®ããŒããŠã§ã¢æ¯æŽä»®æ³åã®å ¬éããªãã·ã§ã³ããã§ãã¯ããå¿ èŠããããŸãã testbed.pyãããããããã«ãæåã®2ã€ã¯ä»®æ³ãã·ã³çšã§ãããKVMã䜿çšãã3ã€ç®ã¯Dockerã³ã³ããçšã§ãã
å³ã«ç€ºãããŠãããã©ã¡ãŒã¿ãŒã䜿çšããŠã5ã€ã®ä»®æ³ãã·ã³ãã¹ãŠããããã€ããŸãã åæã«ãèšç®ââããŒãã®å Žåããã©ã¡ãŒã¿ãŒã¯å®éã«èµ·åãããã·ã³ãšã³ã³ãããŒã®æ°ãšæ°ã«ãã£ãŠæ±ºå®ãããŸãããã³ã³ãããŒã©ãŒã®å Žåããã©ã¡ãŒã¿ãŒã¯æå°èš±å®¹å€ã«è¿ãå€ã§æå®ãããŸãã
ãã¹ãŠã®ãã·ã³ã«æå°ã®Ubuntu 14.04.4ïŒubuntu-14.04.4-server-i386.isoïŒãé 眮ããŸããã Contrail 3.2.0ããã¥ã¡ã³ãã«ç€ºãããŠããããã«ãå³å¯ã«ã¯ãã®ããŒãžã§ã³ã§ã-ããã¯éåžžã«éèŠã§ãïŒ ãã以å€ã®å Žåãéäºææ§ããã±ãŒãžãå®è¡ããã®ã¯éåžžã«ç°¡åã§ãã åãçç±ã§æå°éã§ãã æäœéå¿ èŠãªãã®ã«å ããŠãOpenSSHãµãŒããŒã®ã¿ã äœããã®çç±ã§ãå€ãã®äººã ã¯ãã®ãããªåçŽãªæ瀺ã«çå£ã§ã¯ãªãã圌ãã«ãšã£ãŠã¯ããŸããããŸãã:)
次ã«ã/ etc / network / interfacesã«ã¢ãã¬ã¹ãæžã蟌ã¿ãDNSã«ç ©ããããªãããã«/ etc / hostsã«èšå®ããŸãã
10.10.10.230 openstack 10.10.10.231 control 10.10.10.233 compute-1 10.10.10.234 compute-2 10.10.10.235 compute-3
Fabricã¹ã¯ãªããã䜿çšããŠContrailãã€ã³ã¹ããŒã«ããŸãã ãã®ãªãã·ã§ã³ã¯ã©ãã«ãšã£ãŠæãç°¡åã§ããæ¬çªç°å¢ã§ã¯ãµãŒããŒãããŒãžã£ãŒïŒããŒãã®äžã«PuppetããããŸãïŒããããŸãããããã¯ãŸãå¥ã®æ©äŒã§ãã Fabricã®å ŽåãSSHã®ã«ãŒããã°ã€ã³ãæå¹ã«ããå¿ èŠããããŸãã
echo -e "contrail\ncontrail" | sudo passwd root sudo sed -i.bak 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config sudo service ssh restart
ãã¹ãŠã®ããŒãã§ntpãæå¹ã«ããããšãæãŸããã§ãïŒ
sudo apt-get install ntp
次ã«ãæåã®ããŒãã§ãcontrail-install-packages_3.2.0.0-19-ubuntu-14-04mitaka_all.debããã±ãŒãžã/ tmpã«ã³ããŒããŠã€ã³ã¹ããŒã«ããŸãã
dpkg -i /tmp/contrail-install-packages_3.2.0.0-19-ubuntu-14-04mitaka_all.deb
ã€ã³ã¹ããŒã«ã¹ã¯ãªãããå®è¡ããŸãã
cd /opt/contrail/contrail_packages ./setup.sh
ä»éèŠãªãã€ã³ãã ãã¡ã€ã«ãäœæããå¿ èŠããããŸã/opt/contrail/utils/fabfile/testbeds/testbed.pyãããã¯ã¯ã©ã¹ã¿ãŒã説æããŸãã ãããå®éã®äŸã§ãïŒ
from fabric.api import env # FOR LAB ONLY, DEFAULT IS 250 minimum_diskGB = 10 # MANAGEMENT USERNAME/IP ADDRESSES host1 = 'root@10.10.10.230' host2 = 'root@10.10.10.231' host3 = 'root@10.10.10.233' host4 = 'root@10.10.10.234' host5 = 'root@10.10.10.235' # EXTERNAL ROUTER DEFINITIONS ext_routers = [] # AUTONOMOUS SYSTEM NUMBER router_asn = 64512 # HOST FROM WHICH THE FAB COMMANDS ARE TRIGGERED # TO INSTALL AND PROVISION host_build = 'root@10.10.10.230' # ROLE DEFINITIONS env.roledefs = { 'all': [host1, host2, host3, host4, host5], 'cfgm': [host1], 'openstack': [host1], 'control': [host2], 'compute': [host3, host4, host5], 'collector': [host1], 'webui': [host1], 'database': [host1], 'build': [host_build] } # DOCKER env.hypervisor = { host5 : 'docker', } # NODE HOSTNAMES env.hostnames = { 'host1': ['openstack'], 'host2': ['control'], 'host3': ['compute-1'], 'host4': ['compute-2'], 'host5': ['compute-3'], } # OPENSTACK ADMIN PASSWORD env.openstack_admin_password = 'contrail' # NODE PASSWORDS env.passwords = { host1: 'contrail', host2: 'contrail', host3: 'contrail', host4: 'contrail', host5: 'contrail', host_build: 'contrail', }
ããŸããŸãªã»ã¯ã·ã§ã³ã®æå³ã¯ããã以äžèª¬æããããšãªãæ確ã«ãã¹ãã ãšæããŸãã
ããšæ°ã¹ãããã æ®ãã®ããŒãã«ããã±ãŒãžãã€ã³ã¹ããŒã«ããŸãã
cd /opt/contrail/utils/ fab install_pkg_all:/tmp/contrail-install-packages_3.2.0.0-19-ubuntu-14-04mitaka_all.deb
ã«ãŒãã«ãæšå¥šã®ãã®ã«å€æŽããŸãã
fab upgrade_kernel_all
ïŒã«ãŒãã«ããŒãžã§ã³ã4.2.0-27-genericãã3.13.0-85-genericã«å€æŽãããããŒããåèµ·åããŸãïŒã
次ã«ãæåã®ããŒãã«ç§»åããŠïŒ
cd /opt/contrail/utils/ fab install_contrail
ãããŠæåŸã«ãæåŸã®ã¹ãããïŒç§ã®å Žåãæé·ã§çŽ1æéããããŸãïŒïŒ
fab setup_all
ååãšããŠãããã ãã§ãã ãããããã®åœ¢åŒã§ã¯ãä»®æ³ãã·ã³ã®ç¹å®ã®ãã©ã¡ãŒã¿ãŒã䜿çšããŠãContrailã¯ã©ãŠãã®é床ãäœäžããŸãã é床ãäžããããã«ããã€ãã®ããªãã¯ã䜿çšããŸãïŒã©ãã§ã®ã¿äœ¿çšïŒïŒ
echo 'export JAVA_OPTS="-Xms100m -Xmx500m"' > /etc/zookeeper/java.env sed -i.bak 's/workers = 40/workers = 1/' /etc/nova/nova.conf sed -i.bak 's/#MAX_HEAP_SIZE="4G"/MAX_HEAP_SIZE="1G"/' /etc/cassandra/cassandra-env.sh sed -i.bak 's/#HEAP_NEWSIZE="800M"/HEAP_NEWSIZE="500M"/' /etc/cassandra/cassandra-env.sh
ïŒãã®åŸããµãŒããŒãåèµ·åããå¿ èŠããããŸããåèšã§ã¡ã¢ãªäœ¿çšéã1.5åæžå°ããä»®æ³ãã·ã³ã®èµ·åãªã©ã®ã¢ã¯ã·ã§ã³ã«å¯Ÿããå¿çãå€§å¹ ã«æ¹åãããŸãïŒã
ããã§ãWebã€ã³ã¿ãŒãã§ãŒã¹ã«ã¢ã¯ã»ã¹ã§ããŸãã Openstack Horizoâânã¯10.10.10.230/horizoâânã§ãContrail Web UIã¯10.10.10.230:8080ã§å©çšã§ããã¯ãã§ãã èšå®ã§ã¯ããŠãŒã¶ãŒåã¯adminããã¹ã¯ãŒãã¯é£è¡æ©é²ã§ãã
çµè«
ãã®èšäºããèå³ã®ãã人ã ãContrail 3.2ãç解ããäœæ¥ãå§ããã®ã«åœ¹ç«ã€ããšãé¡ã£ãŠããŸãã å®å šãªè£œåããã¥ã¡ã³ãã¯ããžã¥ãããŒã®Webãµã€ãã§å ¥æã§ããŸãã APIãä»ããŠContrailããã«ããæ¹æ³ã®ããã€ãã®äŸã¯ã ããã§åéããããšããŸã ã
ä»äºã®ãã¹ãŠã®æåãšè¯ãæ°åïŒ