INTRODUCING CEPH TO OPENSTACK
http://www.sebastien-han.fr/blog/2012/06/10/introducing-ceph-to-openstack/
http://www.sebastien-han.fr/blog/2012/06/10/introducing-ceph-to-openstack/
服务器上架以,首要的是进行操作系统安装,然后进行联通性测试和网络质量测试。我们曾经有过教训,一个服务器上的业务一直不正常,技术人员排查了好久,在应用和系统上一直没有找到问题,最后发现是一根质量低劣的成品网络线,造成网络质量极差从而引起系统无法正常工作。
网络质量的指标,主要有以下几个:
普通用户测试网络质量的工具,通常的有:
1、ping
谁最常用的一个测试网络质量的一个工具,在各种操作系统、网络设备中一般都自带该工具。ping可以测试网络的延时、丢包率,优点是使用方便,不用安装。
ping的缺陷也比较明显:
2、下载工具,可以测试带宽
这里介绍一个优秀的网络质量测试工具iperf,这个工具在我们的 asterisk 网络电话项目中,立下了汗马功劳。iperf 可以测试真实载荷下的网络质量,可以测试端到端的网络质量,可以测试一定吞吐率下的丢包、抖动。
iperf 在 linux 下和windows下都有二进制包。安装方法:
CentOS 6: rpm -i http://mirrors.ustc.edu.cn/fedora/epel/6/i386/epel-release-6-7.noarch.rpm CentOS 5: rpm -i http://mirrors.sohu.com/fedora-epel/5/i386/epel-release-5-4.noarch.rpm yum -y install iperf
aptitude install iperf
服务器上运行:
iperf -s -u
客户端上测试在8Mbps带宽情况下的网络质量:
iperf -u -c 172.17.0.5 -b 8M -i 1 -w 1M -t 10
客户端起20个进程,每个进程 100k带宽,测试网络质量
iperf -u -c 172.17.0.5 -b 100k -i 1 -w 1M -t 30 -P20
测试结果包括带宽、抖动、丢包:
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 3] 0.0-10.0 sec 1.25 MBytes 1.05 Mbits/sec 0.003 ms 0/ 893 (0%)
服务器安装完了,下面是自动化部署和配置。
puppet是一个不错的自动化部署和配置的工具,网上有不少相关文档。但是可用的代码比较少,我们做了一个基本框架,可以管理用户帐号,ssh配置,sudo配置,postfix配置,ntp配置等等,可以作为 puppet 的一个起步。
http://docs.amazonwebservices.com/AmazonEC2/dg/2007-01-19/instance-addressing.html
curl http://169.254.169.254/latest/meta-data/local-ipv4
这也是openstack兼容的 metadata 获取地址的由来
chef的节点(node)的名字,一旦设定,无法直接修改。重命名的方法是在chef server上删除该节点,然后重新创建。这个过程有点麻烦,希望以后chef进行改进。重命名的步骤如下:
% knife node edit c1-2.pubyun.com { "normal": { "tags": [ ], "sysctl": { }, "postfix": { "relayhost": "[192.168.192.2]" } }, "name": "c1-2.pubyun.com", "chef_environment": "_default", "run_list": [ "role[ubuntu]" ] }
knife client delete c1-2.pubyun.com knife node delete c1-2.pubyun.com
knife node run_list add c1-3.pubyun.com 'role[ubuntu]'
机房的核心交换机S9303上划分了多个VLAN,这些VLAN需要使用DHCP自动获取IP地址。
如何使用一个DHCP服务器给多个VLAN分配IP,网上有不少资料,但是有一些设置比较繁琐,比如需要做trunk到DHCP服务器,然后DHCP服务器的网卡,需要创建多个VLAN子网卡。经过测试,下面是一个方便简化的方法:
1、华为S9303上的设置
设置到DHCP服务器的接口,其中vlan100是dhcp所在vlan
interface Vlanif100 description TO DHCP Server ip address 172.16.255.2 255.255.255.252 interface GigabitEthernet2/1/23 description to DHCP Server port hybrid pvid vlan 100 port hybrid untagged vlan 100
打开 DHCP relay
dhcp server group dhcp-srv dhcp-server 172.16.255.1 0 dhcp enable
然后在每一个需要做dhcp的vlan里加入:
interface Vlanif90 description office ip address 192.168.29.1 255.255.255.0 dhcp select relay dhcp relay server-select dhcp-srv
2、设置 dhcp 服务器
dhcp服务器采用ubuntu,单网卡,配置一个IP:
vi /etc/network/interfaces auto eth0 iface eth0 inet static address 172.16.255.1 netmask 255.255.255.252
dhcp的配置文件,注意
采用 shared-network 多个subnet共享一个network,所有需要获取地址的vlan,都要单独一个 subnet。这样交换机送过来的dhcp请求,就可以根据所在子网,获取到正确的IP地址。
注意:网卡所在地址段172.16.255.0,也必须配置一个 subnet,并且放在第一个,否则无法启动dhcpd
shared-network pubyun { #vlan 20 next-server 172.16.112.2; filename "/pxelinux.0"; # 必须有,否则无法启动 subnet 172.16.255.0 netmask 255.255.255.0 { option routers 172.16.255.1; range 172.16.255.200 172.16.255.240; } } shared-network pubyun { #vlan 1000 next-server 172.16.112.2; filename "/pxelinux.0"; subnet 172.16.0.0 netmask 255.255.255.0 { option routers 172.16.0.1; range 172.16.0.200 172.16.0.240; } } shared-network pubyun { #vlan 1200 next-server 172.16.112.2; filename "/pxelinux.0"; subnet 172.16.96.0 netmask 255.255.255.0 { option routers 172.16.96.1; range 172.16.96.200 172.16.96.240; } }
查看所有安装的 locale:
locale -a
编辑配置文件,改为zh_CN.UTF-8
sudo nano /etc/default/locale LANG="zh_CN.UTF-8" LANGUAGE="zh_CN.zh"
如果没有zh_CN,则需要手工安装:
$cd /usr/share/locales $sudo ./install-language-pack zh_CN
https://www.ibm.com/developerworks/mydeveloperworks/blogs/e93514d3-c4f0-4aa0-8844-497f370090f5/entry/openstack_nova_scheduler_and_its_algorithm27?lang=en
这是IBM中国研究院的YongShengGong 写的一个分析文章,比较仔细。回头得仔细看一下。
目前,OpenStack 的软件包,已经进入EPEL 测试阶段。
发现/etc/init.d 下的启动顺序有问题,都采用了 20, 80的方式:
#!/bin/sh
#
# openstack-nova-api OpenStack Nova API Server
#
# chkconfig: – 20 80
# description: At the heart of the cloud framework is an API Server. \
# This API Server makes command and control of the \
# hypervisor, storage, and networking programmatically \
# available to users in realization of the definition \
# of cloud computing.
这样,启动OpenStack的服务,将比 mysql, rabbitMQ, libvirtd 等服务还要前,这样的启动次序经常导致OpenStack服务启动不成功。
已经发送了邮件给RedHat开发人员,Pádraig Brady确认将做修改。变成 98 02.