تجربیات ابری – قسمت اول

by iman

سلام. بعضی مشکلات و نیازهایی رو که خودم در حین کار با اپن استک بهشون نیاز داشتم رو به صورت سوال جواب اینجا آوردم:

چطوری نام کاربری رو تعویض کنم (البته با تمام متعلقاتش)؟

http://docs.openstack.org/cli-reference/content/keystoneclient_commands.html#keystoneclient_subcommand_user-update

$ keystone user-update –name hpc demo

$ keystone tenant-update –name hpc demo

$ neutron net-update demo-net –name hpc-net

$ neutron subnet-update demo-subnet –name hpc-subnet

$ neutron router-update demo-router –name hpc-router

چطوری یک نود کامپیوت رو از کنترلر حذف کنم ؟

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux_OpenStack_Platform/4/html/Installation_and_Configuration_Guide/Safely_Removing_Compute_Resources.html

$ source admin-openrc.sh
$ nova service-list
+------------------+------------+----------+----------+-------+----------------------------+-----------------+
| Binary           | Host       | Zone     | Status   | State | Updated_at                 | Disabled Reason |
+------------------+------------+----------+----------+-------+----------------------------+-----------------+
| nova-consoleauth | controller | internal | enabled  | up    | 2015-03-27T09:25:35.000000 | -               |
| nova-cert        | controller | internal | enabled  | up    | 2015-03-27T09:25:35.000000 | -               |
| nova-scheduler   | controller | internal | enabled  | up    | 2015-03-27T09:25:35.000000 | -               |
| nova-conductor   | controller | internal | enabled  | up    | 2015-03-27T09:25:36.000000 | -               |
| nova-compute     | compute1   | nova     | enabled  | up    | 2015-03-27T09:25:37.000000 | -               |
| nova-compute     | compute2   | nova     | enabled  | up    | 2015-03-27T09:25:42.000000 | -               |
| nova-compute     | compute3   | nova     | enabled  | up    | 2015-03-27T09:25:35.000000 | -               |
...

اکنون با استفاده از فرمان زیر هاست مورد نظر رو غیر فعال کنید تا در موقع راه اندازی ماشین های مجازی، هاست مدنظر مورد استفاده قرار نگیرد.: 
$ nova service-disable HOST nova-compute
$ nova service-disable  compute26 nova-compute
+-----------+--------------+----------+
| Host      | Binary       | Status   |
+-----------+--------------+----------+
| compute26 | nova-compute | disabled |
+-----------+--------------+----------+


باقی می ماند؟ build چرا برخی اوقات موقع ایجاد ماشین مجازی، سیستم در حالت

: را دوباره راه اندازی نماییدnova-compute  رفته و سرویس compute بر روی نود

# service nova-compute restart

چگونه یک دی ان اس سرور خاص را برای ماشین های مجازی ست نماییم:

راه حل اول  با استفاده از ست کردن دستی بر روی ماشین مجازی :

echo ‘nameserver ‘ >> /etc/resolv.conf

راه حل اصلی:

neutron subnet-update   –dns-nameservers list=true  ...

: nova availability zone نحوه ایجاد یک

$ nova aggregate-create test-aggregate2 test-az
+----+-----------------+-------------------+-------+----------+
| Id | Name            | Availability Zone | Hosts | Metadata |
+----+-----------------+-------------------+-------+----------+
| 2  | test-aggregate2 | test-az           |       |          |
+----+-----------------+-------------------+-------+----------+

ref: http://blog.russellbryant.net/2013/05/21/availability-zones-and-host-aggregates-in-openstack-compute-nova/

چرا با توجه به اینکه نود کامپیوت خالی داریم ولی سیستم در حین اجرای ماشین مجازی پیغام

 رو دریافت می کنیم ؟ Error: No valid host was found.

اگر به پیغام های خطا در فایل

سلام. بعضی مشکلات و نیازهایی رو که خودم در حین کار با اپن استک بهشون نیاز داشتم رو به صورت سوال جواب اینجا آوردم:

چطوری نام کاربری رو تعویض کنم (البته با تمام متعلقاتش)؟

http://docs.openstack.org/cli-reference/content/keystoneclient_commands.html#keystoneclient_subcommand_user-update

$ keystone user-update –name hpc demo

$ keystone tenant-update –name hpc demo

$ neutron net-update demo-net –name hpc-net

$ neutron subnet-update demo-subnet –name hpc-subnet

$ neutron router-update demo-router –name hpc-router

چطوری یک نود کامپیوت رو از کنترلر حذف کنم ؟

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux_OpenStack_Platform/4/html/Installation_and_Configuration_Guide/Safely_Removing_Compute_Resources.html

$ source admin-openrc.sh
$ nova service-list
+------------------+------------+----------+----------+-------+----------------------------+-----------------+
| Binary           | Host       | Zone     | Status   | State | Updated_at                 | Disabled Reason |
+------------------+------------+----------+----------+-------+----------------------------+-----------------+
| nova-consoleauth | controller | internal | enabled  | up    | 2015-03-27T09:25:35.000000 | -               |
| nova-cert        | controller | internal | enabled  | up    | 2015-03-27T09:25:35.000000 | -               |
| nova-scheduler   | controller | internal | enabled  | up    | 2015-03-27T09:25:35.000000 | -               |
| nova-conductor   | controller | internal | enabled  | up    | 2015-03-27T09:25:36.000000 | -               |
| nova-compute     | compute1   | nova     | enabled  | up    | 2015-03-27T09:25:37.000000 | -               |
| nova-compute     | compute2   | nova     | enabled  | up    | 2015-03-27T09:25:42.000000 | -               |
| nova-compute     | compute3   | nova     | enabled  | up    | 2015-03-27T09:25:35.000000 | -               |
...

اکنون با استفاده از فرمان زیر هاست مورد نظر رو غیر فعال کنید تا در موقع راه اندازی ماشین های مجازی، هاست مدنظر مورد استفاده قرار نگیرد.: 
$ nova service-disable HOST nova-compute
$ nova service-disable  compute26 nova-compute
+-----------+--------------+----------+
| Host      | Binary       | Status   |
+-----------+--------------+----------+
| compute26 | nova-compute | disabled |
+-----------+--------------+----------+


باقی می ماند؟ build چرا برخی اوقات موقع ایجاد ماشین مجازی، سیستم در حالت

: را دوباره راه اندازی نماییدnova-compute  رفته و سرویس compute بر روی نود

# service nova-compute restart

چگونه یک دی ان اس سرور خاص را برای ماشین های مجازی ست نماییم:

راه حل اول  با استفاده از ست کردن دستی بر روی ماشین مجازی :

echo ‘nameserver ‘ >> /etc/resolv.conf

راه حل اصلی:

neutron subnet-update   –dns-nameservers list=true  ...

: nova availability zone نحوه ایجاد یک

$ nova aggregate-create test-aggregate2 test-az
+----+-----------------+-------------------+-------+----------+
| Id | Name            | Availability Zone | Hosts | Metadata |
+----+-----------------+-------------------+-------+----------+
| 2  | test-aggregate2 | test-az           |       |          |
+----+-----------------+-------------------+-------+----------+

ref: http://blog.russellbryant.net/2013/05/21/availability-zones-and-host-aggregates-in-openstack-compute-nova/

چرا با توجه به اینکه نود کامپیوت خالی داریم ولی سیستم در حین اجرای ماشین مجازی پیغام 

 رو دریافت می کنیم ؟ Error: No valid host was found.

: مراجعه نماییم با خطای زیر مواجه می شویم /var/log/nova/nova-scheduler.log اگر به پیغام های خطا در فایل

2015-08-15 14:38:36.496 929 INFO nova.filters [req-dfb4facf-205d-4277-8e3d-c6fa5b993177 bb00ebc3588144bf892a0ea9ba3819ca 8a70cf18a2c84768a25cc2a99821f1af] Filter RamFilter returned 0 hosts

دلیل این امر اینه که احتمالا بر روی نود کامپیوت ماشین مجازی بوده  و شما اونو حذف کردین ولیکن در پایگاه داده بروز رسانی نشده و در اینجا خطا میده که فضای حافظه اصلی کمتر از میزان درخواستی داریم. با استفاده از دستور زیر میشه فهمید که چقدر از منابع یک نود کامپیوت مصرف شده

iman@work:~/OpenStack$ nova host-describe compute10
+———–+————+—–+———–+———+
| HOST      | PROJECT    | cpu | memory_mb | disk_gb |
+———–+————+—–+———–+———+
| compute10 | (total)    | 8   | 7982      | 454     |
| compute10 | (used_now) | 16  | 8512      | 200     |
| compute10 | (used_max) | 0   | 0         | 0       |
+———–+————+—–+———–+———+

راه حل اینه که سرویس کامپیوت بر روی نود کامپیوتی که این مشکل رو داره رو  دوباره راه اندازی کنین :

root@compute10:~# service nova-compute restart

اگر دوباره خروجی بگیریم بصورت زیر در میاد

iman@work:~/OpenStack$ nova host-describe compute10
+———–+————+—–+———–+———+
| HOST      | PROJECT    | cpu | memory_mb | disk_gb |
+———–+————+—–+———–+———+
| compute10 | (total)    | 8   | 7982      | 454     |
| compute10 | (used_now) | 0   | 512       | 0       |
| compute10 | (used_max) | 0   | 0         | 0       |
+———–+————+—–+———–+———+