Monthly Archives: 一月 2014

You are browsing the site archives by month.

实习的实验环境是VM vSphere,也就是在虚拟机上实验部署OpenStack,会遇到一些在安装说明上不涉及的问题,在这里记录下。

1. 启动虚拟机时显示 no valid host ,尽管机器是OK的。
如果是原模原样照着说明装必然会出此错误,因为虚拟机上启虚拟机只能使用qemu,而默认却并非如此,所以需要在 /etc/nova/nova.conf 里设置虚拟后台技术为qemu。

2. 启动了虚拟机后,ssh也能登进去,但是ping不出来。(似乎是这个症状)
vSphere建的网卡默认不是混杂模式,网卡如果不是混杂模式是不允许目的地址不是本机MAC的数据包通过网卡的,所以需要将本机的MAC设为混杂模式。

3. 启动虚拟机如果在计算节点启动,返回:Timeout while waiting on RPC response – topic: “network.compute1″, RPC method: “deallocate_for_instance” info: “
似乎是消息服务器的问题,看日志是rpc的call()等待超时,网上有人说是消息服务器崩溃了,需要重启所有服务,我稍微修改了了下代码,不断查日志,最后不知到是因为动哪的原因结果就好了。 Read More →

今天上午刚把Keystone装利索了,做了几个简单实验,因为实验室虚拟机紧张,也没拿别的机器去做测试,然后跑虚拟机的服务器又是个Windows Server,用起来不爽,自己机器和虚拟机不是一个网段的,ping都ping不同所以只能放弃别的实验了。

安装Keystone基本上很正常,按着官方的 OpenStack Installation Guide for Red Hat Enterprise Linux, CentOS, and Fedora – havana 在 CentOS6.5 上装没有遇到什么问题,唯一的问题就是设置了hostname为controller后,有几个设置操作涉及到这个controller,比如:
openstack-config --set /etc/keystone/keystone.conf \
sql connection mysql://keystone:KEYSTONE_DBPASS@controller/keystone

还有:
export OS_SERVICE_ENDPOINT=http://controller:35357/v2.0
请各位看官们注意,如果你没有设置hosts的话,这里是必然会有问题的,我开始不知道怎么图样图森破居然丧心病狂的以为OpenStack是不是如此牛X,居然能用hostname直接访问,就像loaclhost?后来才想起来localhost也是在hostname里定义的……所以不要忘了在hosts文件里加这么一行:
192.168.0.1 controller
这样后面的操作才能正常啊。当然,你也可以在操作时都用127.0.0.1,不过用controller显然更加赏心悦目啊。

然后,每跑完命令都可以在MySQL里看一看,正常的来说,走完Manual的整个keystone部分后 table status 应该是这样的:


+------------------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-------------------+----------+----------------+---------+
| Name                   | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time         | Update_time         | Check_time | Collation         | Checksum | Create_options | Comment |
+------------------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-------------------+----------+----------------+---------+
| credential             | InnoDB |      10 | Compact    |    0 |              0 |       16384 |               0 |            0 |  11534336 |           NULL | 2014-01-13 21:11:29 | NULL                | NULL       | utf8_general_ci   |     NULL |                |         |
| domain                 | InnoDB |      10 | Compact    |    1 |          16384 |       16384 |               0 |        16384 |  11534336 |           NULL | 2014-01-13 21:11:28 | NULL                | NULL       | utf8_general_ci   |     NULL |                |         |
| endpoint               | InnoDB |      10 | Compact    |    3 |           5461 |       16384 |               0 |        16384 |  11534336 |           NULL | 2014-01-13 21:11:28 | NULL                | NULL       | utf8_general_ci   |     NULL |                |         |
| group                  | InnoDB |      10 | Compact    |    0 |              0 |       16384 |               0 |        16384 |  11534336 |           NULL | 2014-01-13 21:11:28 | NULL                | NULL       | utf8_general_ci   |     NULL |                |         |
| group_domain_metadata  | InnoDB |      10 | Compact    |    0 |              0 |       16384 |               0 |        16384 |  11534336 |           NULL | 2014-01-13 21:11:28 | NULL                | NULL       | utf8_general_ci   |     NULL |                |         |
| group_project_metadata | InnoDB |      10 | Compact    |    0 |              0 |       16384 |               0 |        16384 |  11534336 |           NULL | 2014-01-13 21:11:28 | NULL                | NULL       | utf8_general_ci   |     NULL |                |         |
| migrate_version        | MyISAM |      10 | Dynamic    |    1 |            104 |         104 | 281474976710655 |         4096 |         0 |           NULL | 2014-01-13 21:11:26 | 2014-01-13 21:11:30 | NULL       | latin1_swedish_ci |     NULL |                |         |
| policy                 | InnoDB |      10 | Compact    |    0 |              0 |       16384 |               0 |            0 |  11534336 |           NULL | 2014-01-13 21:11:28 | NULL                | NULL       | utf8_general_ci   |     NULL |                |         |
| project                | InnoDB |      10 | Compact    |    2 |           8192 |       16384 |               0 |        16384 |  11534336 |           NULL | 2014-01-13 21:11:28 | NULL                | NULL       | utf8_general_ci   |     NULL |                |         |
| role                   | InnoDB |      10 | Compact    |    2 |           8192 |       16384 |               0 |        16384 |  11534336 |           NULL | 2014-01-13 21:11:29 | NULL                | NULL       | utf8_general_ci   |     NULL |                |         |
| service                | InnoDB |      10 | Compact    |    1 |          16384 |       16384 |               0 |            0 |  11534336 |           NULL | 2014-01-13 21:11:29 | NULL                | NULL       | utf8_general_ci   |     NULL |                |         |
| token                  | InnoDB |      10 | Compact    |   13 |           8822 |      114688 |               0 |        32768 |  11534336 |           NULL | 2014-01-13 21:11:29 | NULL                | NULL       | utf8_general_ci   |     NULL |                |         |
| trust                  | InnoDB |      10 | Compact    |    0 |              0 |       16384 |               0 |            0 |  11534336 |           NULL | 2014-01-13 21:11:29 | NULL                | NULL       | utf8_general_ci   |     NULL |                |         |
| trust_role             | InnoDB |      10 | Compact    |    0 |              0 |       16384 |               0 |            0 |  11534336 |           NULL | 2014-01-13 21:11:29 | NULL                | NULL       | utf8_general_ci   |     NULL |                |         |
| user                   | InnoDB |      10 | Compact    |    1 |          16384 |       16384 |               0 |        16384 |  11534336 |           NULL | 2014-01-13 21:11:30 | NULL                | NULL       | utf8_general_ci   |     NULL |                |         |
| user_domain_metadata   | InnoDB |      10 | Compact    |    0 |              0 |       16384 |               0 |        16384 |  11534336 |           NULL | 2014-01-13 21:11:29 | NULL                | NULL       | utf8_general_ci   |     NULL |                |         |
| user_group_membership  | InnoDB |      10 | Compact    |    0 |              0 |       16384 |               0 |        16384 |  11534336 |           NULL | 2014-01-13 21:11:29 | NULL                | NULL       | utf8_general_ci   |     NULL |                |         |
| user_project_metadata  | InnoDB |      10 | Compact    |    1 |          16384 |       16384 |               0 |        16384 |  11534336 |           NULL | 2014-01-13 21:11:29 | NULL                | NULL       | utf8_general_ci   |     NULL |                |         |
+------------------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-------------------+----------+----------------+---------+
 

你可以把表里面的值都翻出来看一看,与 kestone user-list 、 keystone tenant-list 什么的做个对比,可以看到 keystone 确实就是一直在搞数据库。然后假设你退出了(Verify 那一页的两个 unset),再登陆可以这样:
keystone --os-username=admin --os-password=ADMIN_PASS \
--os-auth-url=http://controller:35357/v2.0 token-get

或者:
keystone --os-username=admin --os-password=ADMIN_PASS \
--os-tenant-name=admin --os-auth-url=http://controller:35357/v2.0 token-get

不过最简单的:建立一个keystonerc,里面设置好:
export OS_USERNAME=admin
export OS_PASSWORD=ADMIN_PASS
export OS_TENANT_NAME=admin
export OS_AUTH_URL=http://controller:35357/v2.0

这样再登入只需要 source keystonerc 即可。 Read More →

这几天在实验室,调研OpenStack,主要研究Neutron,话说Neutron好多好多坑,现在还有很多人都只用nova-network不用Neutron/Quantom,大家似乎都认为小型网络/普通企业用nova-network就够用了,而且还能Multi-host。不过前几天看IRC上的讨论,似乎Neutron也可以了,将在Icehouse-2版完成?自己现在对OpenStack还了解甚少,希望将来能成长成大牛……

闲话少说了,OpenStack的数据库推荐是使用MySQL或PostgreSQL?以前为了测试直接在Ubuntu上用devstack装,装完对OpenStack的安装也没留下什么影响(推荐看脚本,但是脚本那么长,看起来好麻烦啊),这样挺不好的,于是今天跟着Manuals自己装下。

关于SQL自己以前只用过一点点SQLServer,所以对SQL不大懂,在这里留点笔记备忘。

MySQL安装:

基本不会有什么问题,跑下mysql_secure_installation,不过要记得自己设的root密码,其他按需求,基本能看懂。

MySQL登陆:

mysql –user=root –password=password db_name
把上面的password换成你上面设的root密码,dbname当然就是数据库名,
db_name是可以不写的,不过为什么不写?当然你也可以进去之后用 use + DB_NAME 来切换数据库。

MySQL基本操作:

进去之后想看目前已有的数据库可以输入show databases;
注意MySQL的命令是以“;”或“\g”结束的。
刚装完keystone而且没有删除test的话,应该输出如下字样:


+--------------------+
| Database           |
+--------------------+
| information_schema |
| keystone           |
| mysql              |
| test               |
+--------------------+
4 rows in set (0.00 sec)

因为我们的目的是对OpenStack二次开发和读懂源码,所以想看看keystone数据库的内容,比如看看keystone里有哪些表:show tables,输出:


+------------------------+
| Tables_in_keystone     |
+------------------------+
| credential             |
| domain                 |
| endpoint               |
| group                  |
| group_domain_metadata  |
| group_project_metadata |
| migrate_version        |
| policy                 |
| project                |
| role                   |
| service                |
| token                  |
| trust                  |
| trust_role             |
| user                   |
| user_domain_metadata   |
| user_group_membership  |
| user_project_metadata  |
+------------------------+

OK,那怎么显示下user这个表的结构呢? Read More →