ãã¹ãŠã®ããã©ãªã¥ãã£ã«ããã«ã¡ã¯ïŒ
åã®
èšäºã§ ãDevStackã䜿çšããŠãã¹ãç°å¢ãè¿
éã«ãããã€ããæ¹æ³ã«ã€ããŠèª¬æããŸããã ãã®åºçç©ã§ã¯ãæ§æå
ã®2ã€ã®ãã·ã³ïŒã³ã³ãããŒã©ãŒãã³ã³ãã¥ãŒãïŒã«OpenStackãã¯ã©ãŠããããããã€ããæ¹æ³ã説æããŸãã
- ããŒã¹ããŒã³
- äžç®
- ããŽã¡
- äžæ§å
- çããã
- å°å¹³ç·
äžè¬ã«ããã®ã·ã¹ãã ã«ãããå€ãã®ä»®æ³ãã·ã³ãèµ·åãïŒã¡ã¢ãªãšCPUã
èšç®ã§ããéãïŒãä»®æ³ãããã¯ãŒã¯ãäœæããä»®æ³ãã£ã¹ã¯ãäœæããŠVMã«æ¥ç¶ãããã¡ãããã¹ãŠã䟿å©ãªããã·ã¥ããŒãã§ç®¡çã§ããŸãã
ãæ³šæ ã³ãã³ããšèšå®ã®ãªã¹ããå«ãå€ãã®ããããã©ãããïŒ
ç§ã¯ããã«èšããªããã°ãªããŸããïŒ
- çè«çã«ã¯ãèšå®ã«äœãã远å ãããä¿®æ£ãããããã®ãå¿ãããããµãŒãã¹ãªã©ãåèµ·åããå¿
èŠãããããšãå¿ãããããå¯èœæ§ããããŸãã
- åºçç©ã¯è€è£œãããŸãããã ããã«ããå
¬åŒææžãããã®ã«ãŒããåããŸã ïŒ è±èª ïŒ
- ããããã¹ãŠãæžãããšã®ç®æšã¯ããã·ã¢èªã§äœããã®èªã¿åãå¯èœãªOpenStackã®ããŠãã¿ãæã€ããšã§ãã ç§ã¯ãããç§ã®ããã«å€æãããµããããŸããããããã誰ããããè¯ãããšã奚å±ããããšãé¡ã£ãŠããŸãã ãŸããåºçç©ã®å¿
èŠãªç·šéã«é¢ããã³ã¡ã³ããèæ
®ããŠãèªã¿ãããããŸãã
ç¡æèã®ãã¡ã«ãã³ããŒã¢ã³ãããŒã¹ããããªãã§ãã ããã ãã¡ãããããã¯ãã®ã¬ã€ãã®OpenStackç°å¢ã®ç¢ºç«ã«åœ¹ç«ã¡ãŸããããã®ç¥èãçŸå Žã§äœ¿çšããããšã¯æããŸããã
äœã䜿çšããŸããïŒ
- ã³ã³ãããŒã©ãŒi3-540 / 8Gb / 2x120Gb + 2x500Gb / 2NIC
- Compute i7-2600 / 32Gb / 2x500Gb / 1NIC
OSïŒ
Ubuntu 14.04 ïŒCentOSã䜿çšã§ããŸãããã¬ã€ãã¯Ubuntuã«åºã¥ããŠããŸãïŒã
OpenStackãšãã£ã·ã§ã³ïŒ
Kiloæºåãã
ãããã¯ãŒã¯
å
ã®ããã¥ã¢ã«ã§ã¯4ã€ã®ãããã¯ãŒã¯ã䜿çšããŠããŸãã
管ç-10.0.0.0/24-VLAN 10
ãã³ãã«-10.0.1.0/24-VLAN 11
ã¹ãã¬ãŒãž-10.0.2.0/24-VLAN 12
å€éš-192.168.1.0/24
ç§ãã¡ã®å Žåãå€éšãããã¯ãŒã¯ã¯ããŒã ãããã¯ãŒã¯ã®ã©ããã«èŠããŸãããæŠããŠãã®ã€ã³ã¿ãŒãã§ã€ã¹ã¯World Wide WebãèŠãããšãã§ããŸããããã¯ãã¹ãŠãã¯ã©ãŠããå±éãã察象ã«ãã£ãŠç°ãªããŸãã
æ©èœããŠããdns-serverããããšéåžžã«äŸ¿å©ã§ãã ç§ã¯dnsmasqã䜿çšããŸããã
ã€ã³ã¿ãŒãã§ã€ã¹ãæ§æãã
ã³ã³ãããŒã©ãŒäžïŒ ã³ã³ãã¥ãŒãã£ã³ã°ããŒãïŒ äž¡æ¹ã®è»ããäºããèŠãŠãããã¯ãŒã¯ã«è¡ãããšã確èªããŸãã
NTP
ã³ã³ãããŒã©ãŒäžïŒ
èšç®ããŒãã§ïŒ
Kiloãªããžããª
Kiloã¯ããªãè¥ããªãªãŒã¹ã§ã-2015幎4æã ãã®ãªãªãŒã¹ã®äœããããHorizoâânã€ã³ã¿ãŒãã§ã€ã¹ã§ãã·ã¢èªãæ°ã«å
¥ã£ãã
詳现ã¯
ãã¡ããã芧ãã ãã ã
æŽæ°ãããïŒ
SQL + RabbitMQ
SQLãµãŒããŒã®åœ¹å²ã¯ãMySQLãPostgreSQLãOracleããŸãã¯SQLAlchemyã§ãµããŒããããŠãããã®ä»ã®åœ¹å²ã§ãã å
¬åŒããã¥ã¢ã«ã®ããã«MariaDBãã€ã³ã¹ããŒã«ããŸãã
åªããããã©ãŒãã³ã¹ãåãã远å ã®HDDãããã°ãããŒã¿ããŒã¹ãã¡ã€ã«ããã®äžã«çœ®ãããšãã§ããã³ã³ãã¥ãŒãã£ã³ã°ããŒãã§ã¹ã¿ã³ããéçºããããšãèšç»ããŠããå Žåãããã¯äžèŠã§ã¯ãããŸããã
ãããŠãã¡ãããRabbitMQïŒ
ãã¥ãŒã远跡ããã®ã«äŸ¿å©ãªããã«ãåèµ·åãèšå®ãã管çWebGUIãå®è¡ããŸãã
ãŠãŒã¶ãŒãäœæãããã®ãŠãŒã¶ãŒã«æš©å©ãèšå®ããŸãã
rabbitmqctl add_user openstack RABBIT_PASS rabbitmqctl set_permissions openstack ".*" ".*" ".*"
ããŒã¹ããŒã³
Keystoneã¯ãOpenStackã®èªèšŒã»ã³ã¿ãŒã§ãã ãã¹ãŠã®æ¿èªã¯ãããééããŸãã Keystoneã¯ããŒã¿ãSQLããŒã¿ããŒã¹ã«ä¿åããŸãããmemcacheã䜿çšããŸãã
ããŒã¿ããŒã¹ãæºåããŸãã
åœç¶ãä»ã®å Žæã®ããã«ãã¹ã¯ãŒãã眮ãæããããšãå¿ããªãã§ãã ããã
keystoneãµãŒãã¹ã®èªåèµ·åããªãã«ããŠãå¿
èŠãªãã¹ãŠã®ã³ã³ããŒãã³ããã€ã³ã¹ããŒã«ããŸãã
/etc/keystone/keystone.conf config
ã§ ãæ¬¡ã®è¡ãèšè¿°ããŸãã
[DEFAULT] admin_token = ADMIN_TOKEN [database] connection = mysql://keystone:KEYSTONE_DBPASS@controller/keystone [memcache] servers = localhost:11211 [token] provider = keystone.token.providers.uuid.Provider driver = keystone.token.persistence.backends.memcache.Token [revoke] driver = keystone.contrib.revoke.backends.sql.Revoke
ã
openssl rand -hex 16 ãã䜿çšãã
ADMIN_TOKENãžã§ãã¬ãŒã¿ãŒã
ããŒã«ã«ããŒã¿ããŒã¹ãSQLãµãŒããŒãšåæããŸã
Apacheãæ§æããŸãã
ServerNameãã³ã³ãããŒã©ãŒã®ååã«å€æŽããŸãã
openstackãªããžããªããäœæ¥ã¹ã¯ãªãããååŸããŸãã
ãšã³ããã€ã³ããæ§æããŸãã å®éãopenstackã¯ã©ãã§ã©ã®ãµãŒãã¹ãæ©èœããããç¥ã£ãŠãããšã³ããã€ã³ãã®ãããã§ãã
keystoneãã©ã¡ãŒã¿ãŒã§æ¯åæå®ããªãããã«ãç°å¢å€æ°ã远å ããŸãã
次ã«ããµãŒãã¹ãäœæããŸãã
ããŠããšã³ããã€ã³ãAPIãäœæããŸãã
RegionOneã¯ã人éãèªããä»»æã®ååã«å€æŽã§ããŸãã ã仲è¯ãããªããããã«äœ¿çšããŸãã
ãããžã§ã¯ãããŠãŒã¶ãŒãããŒã«ãäœæããŸãã
å
¬åŒããã«åŸã£ãŠåŒãç¶ãè¡ãã®ã§ããã¹ãŠåãã§ãïŒç®¡çè
ãšãã¢
管çè
ã®ãã¹ã¯ãŒããèªåã§äœæããŸãã é åºïŒã管çãããžã§ã¯ãããããžã§ã¯ãããŠãŒã¶ãŒããã³ç®¡çããŒã«ãäœæãããããžã§ã¯ããšãŠãŒã¶ãŒãããŒã«ã«æ¥ç¶ããŸãã
次ã«ã
ãµãŒãã¹ãããžã§ã¯ããäœæã
ãŸã ã
adminãšã®é¡æšã«ããããã¢ãäœæããŸãã
ç°å¢ã¹ã¯ãªãããäœæããŸãã
å®éïŒ
ããã§ã
ããŒã¹ããŒã³ãµãŒãã¹ã®
ã»ããã¢ãããå®äºããŸããã
äžç®
Glanceã¯ãä»®æ³ãã·ã³ã®ãã³ãã¬ãŒãïŒã€ã¡ãŒãžïŒãä¿åããããã®OpenStackããŒã«ã§ãã ç»åã¯Swiftã®Glanceç¬èªã®ãªããžããªã«ä¿åã§ããŸãããä»ã®å Žæã«ãä¿åã§ããŸããäž»ãªããšã¯ããã®ç»åã¯httpçµç±ã§ååŸã§ããããšã§ãã
ãã€ãéã
mysqlããå§ããŸãããïŒ
å°æ¥ã®ãµãŒãã¹ã«é¢ãã
ããŒã¹ããŒã³æ
å ±ãäœæããŸãã
ãŠãŒã¶ãŒ
äžèЧãäœæãã
管çè
ããŒã«ã«æ¥ç¶ããŸãã ãã¹ãŠã®ãµãŒãã¹ã¯ãã®ããŒã«ããæ£ç¢ºã«æ©èœããŸã
ãGlanceãµãŒãã¹ãäœæãããšã³ããã€ã³ããèšå®ããŸãã
次ã«ãã€ã³ã¹ããŒã«ãç¶è¡ããŸãã
ããã³ã»ããã¢ããïŒ
[keystone_authtoken]ã»ã¯ã·ã§ã³ãåé€ããå¿
èŠããããã®ã¯äœã§ãã GLANCE_PASS-keystoneã®ãŠãŒã¶ãŒç®ç·ããã®ãã¹ã¯ãŒãã
filesystem_store_datadirã¯ãã€ã¡ãŒãžã眮ããããªããžããªãžã®ãã¹ã§ãã ãã£ã¹ã¯é害ã«ãã£ãŠãã¹ãŠã®ã€ã¡ãŒãžã誀ã£ãŠå€±ãããªãããã«ããã®ãã£ã¬ã¯ããªã«RAIDã¢ã¬ã€ãŸãã¯ä¿¡é Œã§ãããããã¯ãŒã¯ã¹ãã¬ãŒãžãããŠã³ãããããšããå§ãããŸãã
/etc/glance/glance-registry.confã§ ãã»ã¯ã·ã§ã³
ããŒã¿ããŒã¹keystone_authtokenãpaste_deployãDEFAULTããåãæ
å ±ãè€è£œã
ãŸã ã
ããŒã¿ããŒã¹ãåæããŸãã
ãµãŒãã¹ãåèµ·åããããŒã«ã«ããŒã¿ããŒã¹ãåé€ããŸãã
å
¬åŒããã¥ã¢ã«ã§ã¯ã
cirrosãããŒããããŸãããããã¯äžè¬ã«å¿
èŠãªããããUbuntuã€ã¡ãŒãžãããŒãããŸãã
å¿
èŠãªãã¹ãŠã®ç»åãããã«å
¥åã§ããŸãããããã·ã¥ããŒãã衚瀺ããããŸã§åŸ
ã€ãšæããŸãã
å
šäœ-GlanceãµãŒãã¹ã®æºåãã§ããŸããã
ããŽã¡
Novaã¯OpenStackã®IaaSã®äž»èŠéšåã§ãã Novaã®ãããã§ãä»®æ³ãã·ã³ã¯èªåçã«äœæãããŸãã Novaã¯KVMãXenãHyper-VãVMwareãšå¯Ÿè©±ã§ããŸãããç®èãªããã§ãïŒæ£çŽãªãšãããã©ã®ããã«æ©èœããã®ãããããããŸããïŒã KVMã䜿çšããŸãããä»ã®ãã€ããŒãã€ã¶ãŒã§ã¯æ§æãç°ãªããŸãã
ã³ã³ãããŒã©ãŒ
åã³ãããŒã¿ããŒã¹ããå§ããŸãã
keystoneã«æ
å ±ã远å ããŸãã
å¿
èŠãªããã±ãŒãžãã€ã³ã¹ããŒã«ããŸãã
/etc/nova/nova.conf [DEFAULT] ... rpc_backend = rabbit auth_strategy = keystone my_ip = 10.0.0.11 vncserver_listen = 10.0.0.11 vncserver_proxyclient_address = 10.0.0.11 [database] connection = mysql://nova:NOVA_DBPASS@controller/nova [oslo_messaging_rabbit] rabbit_host = controller rabbit_userid = openstack rabbit_password = RABBIT_PASS [keystone_authtoken] auth_uri = http://controller:5000 auth_url = http://controller:35357 auth_plugin = password project_domain_id = default user_domain_id = default project_name = service username = nova password = NOVA_PASS [glance] host = controller [oslo_concurrency] lock_path = /var/lib/nova/tmp
ããŒã¿ããŒã¹ãåæãããµãŒãã¹ãåèµ·åããŠãããŒã«ã«ããŒã¿ããŒã¹ãåé€ããŸãã
èšç®ããŒã
ããã§ãã³ã³ãã¥ãŒãã£ã³ã°ããŒãã§ã®äœæ¥ãããããå§ãŸããŸããã 説æãããŠãããã¹ãŠã®ã¢ã¯ã·ã§ã³ã¯ãã·ã¹ãã å
ã®åã³ã³ãã¥ãŒãã£ã³ã°ããŒãã§æå¹ã§ãã
/etc/nova/nova.conf [DEFAULT] ... verbose = True rpc_backend = rabbit auth_strategy = keystone my_ip = 10.0.0.31
MANAGEMENT_INTERFACE_IP_ADDRESSã¯ãVLAN 10ã®èšç®ããŒãã®ã¢ãã¬ã¹ã§ãã
novncproxy_base_urlã³ã³ãããŒã©ãŒã¯ãWebãã©ãŠã¶ãŒããã¢ã¯ã»ã¹ã§ããã¢ãã¬ã¹ã«å¯Ÿå¿ããå¿
èŠããããŸãã ããããªããšãHorizoâânããvncã³ã³ãœãŒã«ã䜿çšã§ããŸããã
ãµãŒãã¹ãåèµ·åããããŒã¿ããŒã¹ã®ããŒã«ã«ã³ããŒãåé€ããŸãã
ãã¹ãŠãæ£åžžã«æ©èœãããã©ããã確èªããŸãã
5è¡ç®ã¯ããã¹ãŠãæ£ããè¡ãããããšã瀺ããŠããŸãã
æãéèŠãªããšãè¡ããŸãã-ä»ã§ã¯IaaSããããŸãã
äžæ§å
Neutronã¯ããµãŒãã¹ãšããŠã®ãããã¯ãŒã¯ïŒNaaSïŒãµãŒãã¹ã§ãã äžè¬ã«ãå
¬åŒææžã§ã¯è¥å¹²ç°ãªãå®çŸ©ãæäŸãããŠããŸãããããæç¢ºã«ãªããšæããŸãã Nova-networkingã¯OpenStackã®æ°ããããŒãžã§ã³ã§ã¯å»æ¢ãããŠãããšå®£èšãããŠããããã䜿çšããŸããã ã¯ããäžæ§åã®æ©èœã¯ã¯ããã«åºãã§ãã
ã³ã³ãããŒã©ãŒ
ããã¥ã¢ã«ã§ã¯3çªç®ã®ããŒãã䜿çšãããŠããŸãããã³ã³ãããŒã©ãŒã«ãããã¯ãŒã¯ã³ã¢ãã€ã³ã¹ããŒã«ããŸãã 倿°ã®ã³ã³ãã¥ãŒãã£ã³ã°ããŒãïŒ> 10ïŒãååšããå Žåãããã³/ãŸãã¯ãããã¯ãŒã¯ã®è² è·ãéåžžã«é«ããªãå Žåã¯ããããã¯ãŒã¯ãµãŒããŒãå¥ã®ããŒãã«ç§»åããããšããå§ãããŸãã
ãã€ãã®ããã«ãããŒã¿ããŒã¹ããå§ããŸããã
ããŒã¹ããŒã³ïŒ
å¿
èŠãªã³ã³ããŒãã³ããã€ã³ã¹ããŒã«ããŸãã
/etc/sysctl.confãä¿®æ£ããããšãå¿
èŠã§ã
/etc/neutron/neutron.conf [DEFAULT] ... rpc_backend = rabbit auth_strategy = keystone core_plugin = ml2 service_plugins = router allow_overlapping_ips = True notify_nova_on_port_status_changes = True notify_nova_on_port_data_changes = True nova_url = http://controller:8774/v2 [oslo_messaging_rabbit] rabbit_host = controller rabbit_userid = openstack rabbit_password = RABBIT_PASS [database] connection = mysql://neutron:NEUTRON_DBPASS@controller/neutron [keystone_authtoken] auth_uri = http://controller:5000 auth_url = http://controller:35357 auth_plugin = password project_domain_id = default user_domain_id = default project_name = service username = neutron password = NEUTRON_PASS [nova] auth_url = http://controller:35357 auth_plugin = password project_domain_id = default user_domain_id = default region_name = RegionOne project_name = service username = nova password = NOVA_PASS
èšå®ãç·šéãããšããã³ã¡ã³ãã¢ãŠããããè¡ãé€ããŠãããããäœãåé€ããªãã§ãã ããã
/etc/neutron/plugins/ml2/ml2_conf.ini [ml2] type_drivers = flat,vlan,gre,vxlan tenant_network_types = gre mechanism_drivers = openvswitch [ml2_type_gre] tunnel_id_ranges = 1000:2000 [ml2_type_flat] flat_networks = external [securitygroup] enable_security_group = True enable_ipset = True firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver [ovs] local_ip = 10.0.1.11
/etc/neutron/l3_agent.ini [DEFAULT] interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver external_network_bridge = router_delete_namespaces = True
/etc/neutron/dhcp_agent.ini [DEFAULT] interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq dhcp_delete_namespaces = True dnsmasq_config_file = /etc/neutron/dnsmasq-neutron.conf
/etc/neutron/dnsmasq-neutron.conf dhcp-option-force=26,1454
å
¬åŒããã¥ã¡ã³ãã§ã¯ããã®èšå®ã¯ãžã£ã³ããã¬ãŒã ããµããŒãããŠããªããããã¯ãŒã¯ããã€ã¹ã«äœ¿çšãããŠããŸããããäžè¬ã«ãdnsmasqã®ã»ãŒãã¹ãŠã®èšå®ãããã«èšè¿°ã§ããŸãã
ãã¹ãŠã®dnsmasqããã»ã¹ã匷å¶çµäºããŸã
/etc/neutron/metadata_agent.ini [DEFAULT] auth_uri = http://controller:5000 auth_url = http://controller:35357 auth_region = RegionOne auth_plugin = password project_domain_id = default user_domain_id = default project_name = service username = neutron password = NEUTRON_PASS nova_metadata_ip = controller metadata_proxy_shared_secret = METADATA_SECRET
/etc/nova/nova.conf [DEFAULT] ... network_api_class = nova.network.neutronv2.api.API security_group_api = neutron linuxnet_interface_driver = nova.network.linux_net.LinuxOVSInterfaceDriver firewall_driver = nova.virt.firewall.NoopFirewallDriver [neutron] url = http://controller:9696 auth_strategy = keystone admin_auth_url = http://controller:35357/v2.0 admin_tenant_name = service admin_username = neutron admin_password = NEUTRON_PASS service_metadata_proxy = True metadata_proxy_shared_secret = METADATA_SECRET
METADATA_SECRETã¯ã
10ã16æåã®æåã»ããã§ããããŸã
nova.confããã¯äœãåé€ããã远å ããã ãã§ãã
ããŒã¿ããŒã¹ãåæãããµãŒãã¹ãåèµ·åããŸãã
ããªããžãäœæããå€éšã€ã³ã¿ãŒãã§ã€ã¹ã«æ¥ç¶ããŸã
ã€ã³ã¿ãŒãã§ãŒã¹ãåèµ·åãã
èšç®ããŒã
ã³ã¡ã³ãã¯ãããŸããã
/etc/neutron/neutron.conf [DEFAULT] ... rpc_backend = rabbit auth_strategy = keystone core_plugin = ml2 service_plugins = router allow_overlapping_ips = True [oslo_messaging_rabbit] rabbit_host = controller rabbit_userid = openstack rabbit_password = RABBIT_PASS [keystone_authtoken] auth_uri = http://controller:5000 auth_url = http://controller:35357 auth_plugin = password project_domain_id = default user_domain_id = default project_name = service username = neutron password = NEUTRON_PASS
/etc/neutron/plugins/ml2/ml2_conf.ini [ml2] type_drivers = flat,vlan,gre,vxlan tenant_network_types = gre mechanism_drivers = openvswitch [ml2_type_gre] tunnel_id_ranges = 1000:2000 [ml2_type_flat] flat_networks = external [securitygroup] enable_security_group = True enable_ipset = True firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver [ovs] local_ip = 10.0.1.31
openvswitchãåèµ·åããŸã
/etc/nova/nova.confã«è¡ã远å ã
ãŸã [DEFAULT] ... network_api_class = nova.network.neutronv2.api.API security_group_api = neutron linuxnet_interface_driver = nova.network.linux_net.LinuxOVSInterfaceDriver firewall_driver = nova.virt.firewall.NoopFirewallDriver [neutron] url = http://controller:9696 auth_strategy = keystone admin_auth_url = http://controller:35357/v2.0 admin_tenant_name = service admin_username = neutron admin_password = NEUTRON_PASS
ãµãŒãã¹ãåèµ·åããŸãã
èšåããããšãå¿ããªãã£ãå Žåãæ¬¡ã®ããã«ãªããŸãã
ãããã¯ãŒã¯
次ã«ããããã¯ãŒã¯ã®åæèª¿éãè¡ããŸãã 1ã€ã®å€éšãããã¯ãŒã¯ãš1ã€ã®å
éšãããã¯ãŒã¯ãäœæããŸãã
ä»®æ³ãããã¯ãŒã¯ãäœæããŸãã
å€éšãµãããããæ§æããŸãã
å€éšãããã¯ãŒã¯ã¯192.168.1.0/24ã§ãããã«ãŒã¿ãŒã¯ã€ã³ã¿ãŒãããäžã§192.168.1.1ããªãªãŒã¹ããŠããŸãã ã¯ã©ãŠãã®å€éšã¢ãã¬ã¹ã¯ã192.168.1.101-200ã®ç¯å²ããçºè¡ãããŸãã
次ã«ã
ãã¢ãããžã§ã¯ãã®å
éšãããã¯ãŒã¯ãäœæããŸãããã®ããããã¢ãŠãŒã¶ãŒã®å€æ°ãèªã¿èŸŒãå¿
èŠããããŸãã
次ã«ãä»®æ³å
éšãããã¯ãŒã¯ãäœæããŸãã
ä»®æ³ãããã¯ãŒã¯ã172.16.1.0/24ã«ãªããããããã®ãã¹ãŠã®ã€ã³ã¹ã¿ã³ã¹ã172.16.1.1ãã«ãŒã¿ãŒãšããŠåä¿¡ããããšã¯æããã§ãã
質åïŒãã®ã«ãŒã¿ãŒã¯äœã§ããïŒ
åçïŒããã¯ä»®æ³ã«ãŒã¿ãŒã§ãã
ãããªãã¯ãã¯ãNeutronã§ååã«å€æ°ã®ãµãããããæã€ä»®æ³ãããã¯ãŒã¯ãæ§ç¯ã§ããããšã§ããã€ãŸããä»®æ³ã«ãŒã¿ãŒãå¿
èŠã§ãã åä»®æ³ã«ãŒã¿ãŒã¯ãå©çšå¯èœãªä»®æ³ããã³å€éšãããã¯ãŒã¯ã®ããããã«ããŒãã远å ã§ããŸãã ãããŠãããã¯æ¬åœã«ã匷åãã§ãïŒ ãããã¯ãŒã¯ãžã®ã¢ã¯ã»ã¹ã®ã¿ãã«ãŒã¿ãŒã«å²ãåœãŠããã¹ãŠã®ãã¡ã€ã¢ãŠã©ãŒã«ã«ãŒã«ãã»ãã¥ãªãã£ã°ã«ãŒããã管çããŸãã ããã«ïŒ ãœãããŠã§ã¢ã«ãŒã¿ãŒã䜿çšããŠä»®æ³ãã·ã³ãäœæããå¿
èŠãªãã¹ãŠã®ãããã¯ãŒã¯ãžã®ã€ã³ã¿ãŒãã§ã€ã¹ãæ§æãããããä»ããŠã¢ã¯ã»ã¹ãå¶åŸ¡ã§ããŸãïŒMikrotikã䜿çšããŠã¿ãŸããïŒã
äžè¬çã«ãNeutronã«ã¯æ³ååã®äœå°ããããŸãã
ä»®æ³ã«ãŒã¿ãŒãäœæããdemo-subnetã§ã€ã³ã¿ãŒãã§ã€ã¹ãå²ãåœãŠãå€éšãããã¯ãŒã¯ã«æ¥ç¶ããŸãã
ããã§ãä»®æ³ã«ãŒã¿ãŒã¯å€éšãããã¯ãŒã¯ããå¿çããã¯ãã§ãã
äžè¬ã«ããããã¯ãŒã¯ãåãã皌åäžã®ã¯ã©ãŠãããã§ã«ãããŸãã
Cinder ïŒãããã¯ã¹ãã¬ãŒãžïŒ
Cinderã¯ããããã¯ããã€ã¹ïŒä»®æ³ãã£ã¹ã¯ïŒã管çããããããä»®æ³ã€ã³ã¹ã¿ã³ã¹ã«ã¢ã¿ããããæ©èœãæäŸãããµãŒãã¹ã§ãã ä»®æ³ãã£ã¹ã¯ãèµ·åå¯èœã«ããããšãã§ããŸãã ããã¯ãVMãå¥ã®ã³ã³ãã¥ãŒãã£ã³ã°ã€ã³ã¹ã¿ã³ã¹ã«è»¢éããå Žåã«éåžžã«äŸ¿å©ã§ãã
DBïŒ
ããŒã¹ããŒã³ïŒ
å¿
èŠãªããã±ãŒãžã®ã€ã³ã¹ããŒã«ïŒ
èšå®ãä¿®æ£ããŸãããïŒ
/etc/cinder/cinder.conf [DEFAULT] ... rpc_backend = rabbit auth_strategy = keystone my_ip = 10.0.0.11 [oslo_messaging_rabbit] rabbit_host = controller rabbit_userid = openstack rabbit_password = RABBIT_PASS [database] connection = mysql://cinder:CINDER_DBPASS@controller/cinder [keystone_authtoken] auth_uri = http://controller:5000 auth_url = http://controller:35357 auth_plugin = password project_domain_id = default user_domain_id = default project_name = service username = cinder password = CINDER_PASS [oslo_concurrency] lock_path = /var/lock/cinder
次ã«ãããŒã¿ããŒã¹ãåæãããµãŒãã¹ãåèµ·åããŸãã
ãªããªã ã³ã³ãããŒã©ãŒããªããžããªãŒã«ãªããããæ¬¡ã®ã¢ã¯ã·ã§ã³ãå®è¡ããŸãã
å¿
èŠãªããã±ãŒãžãã€ã³ã¹ããŒã«ããŸãã
æ§æã§2ã€ã®500GBãã©ã€ãã«ã€ããŠèšåããããšãèŠããŠããŸããïŒ RAID 1ãäœæããŸãïŒèª¬æããŸããïŒã çŽç²ã«æè¡çã«ã¯ã2ã€ã®ç©çãã£ã¹ã¯ããlvmããŒãã£ã·ã§ã³ãäœæããããšãã§ããŸãããHAãããžã§ã¯ãããªãããã£ã¹ã¯ã®1ã€ãèœäžããããšãéèŠã«ãªãå¯èœæ§ãããããããã®ãªãã·ã§ã³ã¯äžé©åã§ãã RAIDã¢ã¬ã€ã®äœææ¹æ³ã¯åæããŸããããç°¡åã«ã°ãŒã°ã«ã§ãã RAIDã¯
/ dev / md1ãšåŒã°ãããšä»®å®ããŸãïŒ
ç©çLVMããã€ã¹ãäœæãã
cinder-volumes lvmã°ã«ãŒããäœæããŸããã
次ã«ã/
etc/lvm/lvm.confãç·šéããŸãã
ããã§æ¬¡ã®è¡ãèŠã€ããŸãïŒãŸãã¯è¿œå ããŸãïŒã
devices { ... filter = [ "a/md1/", "r/.*/"]
raidã»ã¯ã·ã§ã³ãé€ããlvmãšã¯äœã®é¢ä¿ããªããšä»®å®ããŸãã äœæ¥ã»ã¯ã·ã§ã³ãlvmã«ãããã€ãããŠããå Žåã¯ã远å ããå¿
èŠããããŸãã ããšãã°ãã·ã¹ãã ã
/ dev / md0ã«ãããã€ãããlvmããã®äžã«ãããã€ãããŠããå Žåãæ§æã¯æ¬¡ã®ããã«ãªããŸãã
devices { ... filter = [ "a/md0/", "a/md1/", "r/.*/"]
äžè¬ã«ãlvmã«åºäŒã£ã人ã«ãšã£ãŠããã¯é£ãããªãã¯ãã ãšæããŸãã
å¿
èŠãªããã±ãŒãžãã€ã³ã¹ããŒã«ããŸãã
æ§æã«è¿œå ããŸãã
/etc/cinder/cinder.conf [DEFAULT] ... enabled_backends = lvm glance_host = controller [lvm] volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver volume_group = cinder-volumes iscsi_protocol = iscsi iscsi_helper = tgtadm
ãããŠããµãŒãã¹ãåèµ·åããŸãã
Horizoâân ïŒããã·ã¥ããŒãïŒ
Horizoâân-Python 2.7ã§èšè¿°ãããOpenStackã®ããã·ã¥ããŒãããšã³ãžã³ã¯Djangoã§ããOpenStackç°å¢å
šäœã®å®å
šãªç®¡çã¯ããŠãŒã¶ãŒ/ãããžã§ã¯ã/ããŒã«ç®¡çãã€ã¡ãŒãžç®¡çãä»®æ³ãã£ã¹ã¯ãã€ã³ã¹ã¿ã³ã¹ããããã¯ãŒã¯ãªã©ããå®è¡ãããŸããèšçœ®
ã³ã³ãããŒã©ãŒããŒãã«ã¢ã¯ã»ã¹ã§ããå¥ã®ãµãŒããŒã«ã€ã³ã¹ããŒã«ãå®è¡ã§ããŸãããã³ã³ãããŒã©ãŒã«ã€ã³ã¹ããŒã«ããŸãããŸã£ããã«èšå®/etc/openstack-dashboard/local_settings.pyïŒ ... OPENSTACK_HOST = "controller" ... ALLOWED_HOSTS = '*' ... CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', 'LOCATION': '127.0.0.1:11211', } } ... OPENSTACK_KEYSTONE_DEFAULT_ROLE = "user" ... TIME_ZONE = "Asia/Vladivostok" ...
TIME_ZONE-ããªãã®ã¿ã€ã ãŸãŒã³ã¯ç°ãªã£ãŠãããããããŸããïŒãããŠãããããããªãã§ãããïŒãããã«ãããŸããApacheãåèµ·åããŸãã
ããã§ãã³ã³ãããŒã©ãŒ/ãã©ã€ãºã³ã«ç§»åã§ããŸããç§ã®ä»¥åã®åºçç©ã§ã¯ãããã·ã¥ããŒãã®ã¹ã¯ãªãŒã³ã·ã§ãããèŠãããšãã§ããŸããUbuntuã¯ããã«ãopenstack-dashboard-ubuntu-themeããã±ãŒãžãã€ã³ã¹ããŒã«ããŸããããã«ãããJujuã®ãã³ããå«ããªã³ã¯ã远å ãããŸããå
ã®ããŒãžã§ã³ãè¿ãããå Žåã¯ãåã«ããã±ãŒãžãåé€ã§ããŸãããŠãŒã¶ãŒãããã£ãŒã«ã§ãã·ã¢èªã®ã€ã³ã¿ãŒãã§ãŒã¹èšèªãéžæããããšãã§ããŸããããã«ãããéçºè
ã®äœæ¥ã倧å¹
ã«ä¿é²ãããŸããã§ããïŒ
åºçç©ã¯éåžžã«é¢åã§ããããšã倿ããŸããããå
±æããããããŸããã§ãããèšäºã誰ã«ã圹ç«ã€ããšãé¡ã£ãŠããŸããæ¬¡ã®åºçç©ïŒãããããã§ã«ã«ããæããªãå ŽåïŒã§ã¯ãChefãµãŒããŒã®åºæ¬çãªã€ã³ã¹ããŒã«ãšç°¡åãªã¬ã·ãã«ã€ããŠèª¬æããŸãã