OpenStack Mimarisi ve Gereksinimleri – Bölüm 2
Merhaba,
Bir önceki bölümde OpenStack servisleri ile ilgili detaylı bilgi vermiştim. Bu yazımda ise OpenStack’in mimarisi ile ilgili bilgi vereceğim. Yine bir önceki bölümde belirtmiş olduğum servislerin nerelerde nasıl kullanıldığını detaylı olarak görebileceksiniz.
Ben bu makale serisine Kilo kurulumunu yapacağım. Ondan dolayı bundan sonraki örnek mimariler bu sürüme göre olacaktır.
Openstack’deki mimariyi kavramsal (Conceptual) ve mantıksal (Logical) olmak üzere 2 şekilde göstereceğim.
Conceptual architecture:
Logical architecture:
Design, deployment ve OpenStack’i yapılandırmak için kurulumu yapacak olan Adminstrator’ların mantıksal mimariyi anlaması gerekmektedir. Yukarıda göstermiş olduğum kavramsal mimaride basit anlamda hangi servislerin kullanılacağı belirtilmiştir. Buradaki tüm servisler tek identitry servis üzerinden authentication yapmaktadır.
Servisler arasındaki iletişim için bir AMQP message broker kullanılır. Bu servis’in durum bilgisi database üzerinde saklanır. OpenStack cloud’u deployment ve konfigurasyon için yapılandırırken RabbitMQ, MySQL, mariadb ve SQLite gibi birçok message broker ve database çözümlerini kullanabilirsiniz. Bu tamamen sizin tercihinize kalmış.
Example architecture (Örnek Mimari):
Basic bir kullanım için minimum 3 node’a yani 3 tane host’a ihtiyacınız bulunmaktadır. Ben bu yapıda Neutron kullanmayı tercih ettim. Ondan dolayı 3 host kullanıyorum. Eğer siz nova kullanacaksanız 2 host kullanabilirsiniz. Nova’yı controller üzzerine kurabilirsiniz. Tercihen Block ve Object storage kullanılabilir.
Mimari ile ilgili daha detaylı bilgi için aşağıdaki link’leri inceleyebilirsiniz.
Architecture Design Guide, Operations Guide, ve Networking Guide.
Hardware gereksinimleri:
Controller:
Identity Service, Image Service, Dasboard ve Compute ‘u çalıştırır. Buna ek olarak Sql database, message queue ve NTP gibi servisleride içerir. Opsiyonel olarak controller node, Block Storage, Object Storage, Orchestration ve Telemetry servislerinide çalıştırır.
Controller node minimum 1 network kartına ihtiyaç duymaktadır. Minimum konfigurasyon aşağıdaki gibi olmalıdır:
CPU: 1 veya 2 CPU
Memory: 8GB memory
Disk: 100GB disk
Network: Minimum 1 adet network kartı olmalıdır.
Compute:
Compute node’da hypervisor çalışmaktadır. Varsayılan olarak Compute node hypervisor KVM kullanır. Tabi siz birden fazla Compute node çalıştırabilirsiniz. Tamamen size kalmış bir durum. Birden fazla compute node deploy edebilirsiniz ancak her node’da minimum 2 network kartı bağlı olmalıdır. Minimum konfigurasyon aşağıdaki gibi olmalıdır:
CPU: 2 veya 4 CPU
Memory: 8GB memory
Disk: 100GB disk
Network: Minimum 3 adet network kartı olmalıdır.
Network:
Neutron servisinin çalışacağı sunucudur. Siz burada isterseniz Neutron kullanabilir istersenizde nova kullanabilirsiniz. Neutron kullanacağımız için 1 controller node, 1 network node ve compute node kullanmamız gerekmektedir.
CPU: 1 veya 3 CPU
Memory: 2GB memory
Disk: 50GB disk
Network: Minimum 3 adet network kartı olmalıdır.
Block Storage:
Bunu Opsiyonel olarak kullanabilirsiniz. Kolaylık olması açısından compute ve bu node’un network trafiğini management network üzerinden kullanır. Ancak siz Production ortamında kullanacaksanız mutlaka ayrı bir network kullanmalısınız. Bu hem güvenlik hemde hız açısından size faydalı olacaktır. Bir veya birden fazla block storage node’u deploy edip kullanabilirsiniz. Her node’da minimum 1 tane network kartı olmalıdır. Minimum konfigurasyon aşağıdaki gibi olmalıdır:
CPU: 1 veya 2 CPU
Memory: 4GB memory
Disk: 100GB disk (/dev/sdb ve /dev/sdc)
Network: Minimum 2 adet network kartı olmalıdır.
Object Storage:
Opsiyonel olarak Object Storage kullanabilirsiniz. Kolaylık olması açısından compute ve bu node’un network trafiğini management network üzerinden kullanır. Ancak siz Production ortamında kullanacaksanız mutlaka ayrı bir network kullanmalısınız. Bu hem güvenlik hemde hız açısından size faydalı olacaktır. Bu servis 2 node’a ihtiyaç duymaktadır. Her node üzerinde minimum 1 tane network kartı olmalıdır. Eğer isterseniz ikiden fazla Object Storage node’u deploy edebilirsiniz. Minimum konfigurasyon aşağıdaki gibi olmalıdır:
Node 1
CPU: 1 veya 2 CPU
Memory: 4GB memory
Disk: 100GB disk (/dev/sdb ve /dev/sdc)
Network: Minimum 2 adet network kartı olmalıdır.
Node:2
CPU: 1 veya 2 CPU
Memory: 4GB memory
Disk: 100GB disk (/dev/sdb ve /dev/sdc)
Network: Minimum 2 adet network kartı olmalıdır.
Networking gereksinimleri:
OpenStack üzerinde networking ikiye ayrılıyor. Bunlardan biri nova diğeri ise neutron. Nova ve Neutron ayrımını VMware vSphere ESXi/vCenter ‘daki Virtual Switch ve Distributed Switch ayrımına benzetebilirsiniz. Tabi özellikleri birbirinden tamamen farklı. Nova network daha eski bir yapıdır. Neutron ise daha modern ve yapılandırılabilir bir yapı sunmaktadır.
Networking tarafındaki opsiyonları inceledikten sonra kuracağımız yapı hakkında kısaca bilgi vermek istiyorum.
OpenStack ortamını hazırlarken kullanacağınız tüm işletim sistemleri 64 bit olmalıdır. 32bit’ede kurulum yapabilirsiniz ancak içerisine 64bit sanal makina açmak istediğinizde hata verecektir.
Kuruluma başlamadan önce aşağıdaki password tablosunu paylaşmak istiyorum. Çünkü bunların bir bölümünü kurulum sırasında kullanacağız.
Password name | Description |
---|---|
Database password (no variable used) | Root password for the database |
ADMIN_PASS | Password of user admin |
CEILOMETER_DBPASS | Database password for the Telemetry service |
CEILOMETER_PASS | Password of Telemetry service user ceilometer |
CINDER_DBPASS | Database password for the Block Storage service |
CINDER_PASS | Password of Block Storage service user cinder |
DASH_DBPASS | Database password for the dashboard |
DEMO_PASS | Password of user demo |
GLANCE_DBPASS | Database password for Image service |
GLANCE_PASS | Password of Image service user glance |
HEAT_DBPASS | Database password for the Orchestration service |
HEAT_DOMAIN_PASS | Password of Orchestration domain |
HEAT_PASS | Password of Orchestration service user heat |
KEYSTONE_DBPASS | Database password of Identity service |
NEUTRON_DBPASS | Database password for the Networking service |
NEUTRON_PASS | Password of Networking service user neutron |
NOVA_DBPASS | Database password for Compute service |
NOVA_PASS | Password of Compute service user nova |
RABBIT_PASS | Password of user guest of RabbitMQ |
SWIFT_PASS | Password of Object Storage service user swift |
Kurulum sırasında kullanacağımız user’ın admin haklarına sahip olması gerekmektedir. Sunucu içerisinde çalıştıracağımız komutlarda ya root user’ı veya sudo komutları ile çalıştırmamız gerektirmektedir.
Bir sonraki bölümde Compute ve Controller node’ların üzerinde konfigurasyona başlayacağız.
Umarım faydalı olmuştur.
İyi çalışmalar.