openstack初步部署(2)

2019-03-11 14:40

restart nova-api; restart nova-objectstore; restart nova-scheduler

查看nova-network是否启动起来了,安装过程中有时会起不来,查看dnsmasq是否启动了,它使用的端口是53端口,一次安装过程中由于已经开启了bind9服务,占用了53端口,需要杀掉bind9进程。dnsmasq服务是给虚拟机提供网络相关服务用的。

同步数据库nova,openstack会在nova数据库中建一些表

/usr/bin/nova-manage db sync (直接用nova-manage db sync 也可以) 创建管理员用户:nova (名字随意,参数admin表示是管理员账户 )

/usr/bin/nova-manage user admin nova

返回EC2_ACCESS_KEY 和EC2_SECRET_KEY 创建工程(项目),需要制定工程名字和创建者。

/usr/bin/nova-manage project create novaproject nova 创建虚拟机网络

/usr/bin/nova-manage network create 172.16.0.1/24 1 256

注意:其中172.16.0.1/24必须在nova.conf中配置的--fixed_range 的范围内,1表 示创建1个网络,256表示每个网络有多少个ip。

上述创建的用户,工程和网络都会记录在数据库nova中。 创建证书

mkdir –p ~/creds 目录随意

nova-manage project zipfile novaproject nova ~/creds/novacert.zip

这个命令会在~/creds文件夹中创建novacert.zip文件,里面压缩了记录用户认证和环

境变量的一些文件。解开这个文件

unzip ~/creds/novacert.zip -d ~/creds/

在文件夹creds下会看到cacert.pem cert.pem novarc pk.pem这几个文件,其中

novarc记录的是环境变量,其他的是一些认证文件

source ~/creds/novarc 就会注册该环境变量,当然也可以加到.bashrc中。

授权对结算节点上的虚拟机的访问,要使用使用euca-authorize命令

euca-authorize -P icmp -t -1:-1 default 授权ping euca-authorize -P tcp -p 22 default 授权ssh

注意:如果ping不通虚拟机的话,需要看一下dnsmasq服务,当你有虚拟机在运

行的情况下,(当然,到现在为止,还没有开启一个虚拟机),要检查是否有两个 dnsmasq服务在运行中,如果不是,运行下面命令:

killall dnsmasq

service nova-network restart

在计算节点上安装nova

在计算节点上只需要一个nova-compute服务启动就行了,所以只需要安装nova-compute 服务。

修改/etc/nova/nova.conf文件(基本上与控制节点上的一样),当然一些配置网络的参数就不需要了。必须要配置消息队列服务器地址,网络服务器地址,数据库地址,控制中心地址等

再配置网桥,因为nova使用的是br100作为网桥,所以/etc/network/interfaces 如下: # The loopback network interface auto lo

iface lo inet loopback

# The primary network interface auto br100

iface br100 inet static bridge_ports eth0 bridge_stp off bridge_maxwait 0 bridge_fd 0

address xxx.xxx.xxx.xxx

netmask xxx.xxx.xxx.xxx

gateway xxx.xxx.xxx.xxx 重启网络服务

/etc/init.d/networking restart

配置完nova.conf ,和网络之后,重启nova-compute 和libvirt-bin

restart libvirt-bin; service nova-compute restart

为了避免KVM的问题和nova的访问权限,修改下面权限

chgrp kvm /dev/kvm chmod g+rwx /dev/kvm

在计算节点上要配置一个iptables ,因为在计算节点上没有启动nova-api服务,配置一个nat,跳转到nova-api上,这样UEC镜像才能取得正确的数据。

# iptables -t nat -A PREROUTING -d 169.254.169.254/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination $NOVA_API_IP:8773

测试计算节点服务是否已经在控制节点上生效,运行下面命令

nova-manage service list

ubuntu10 nova-scheduler enabled :-) 2011-11-04 08:47:56 ubuntu10 nova-network enabled :-) 2011-11-04 08:48:00 ubuntu10 nova-compute enabled :-) 2011-11-04 08:47:59 ubuntu10 nova-volume enabled :-) 2011-11-04 08:47:57 ubuntu12 nova-compute enabled :-) 2011-11-04 08:48:02 ubuntu12 nova-scheduler disabled XXX 2011-11-02 04:50:16 这里不仅需要服务是enabled,而且需要 :-) +时间,这个时间表示最近的一次服务是否开 启测试的时间(最后一次心跳时间)

如果一切正常,那么两台机器之间的通信就没有问题了

在openstack上开启虚拟机

发布镜像

uec-publish-tarball ubuntu-10.10-server-uec-i386.tar.gz mybucket

返回三个值,ami,aki,ari

创建一个ssh登录keypair,在这之前需要先source ~/creds/novarc 也就是要把环境变量配 置好,因为这个命令要把一些环境变量配置为ssh登录keypair。

euca-add-keypair mykey > mykey.priv 名字随意

修改keypair.priv权限,太高权限出错

chmod 600 mykey.priv

开启一个虚拟机

euca-run-instances ami-g06qbntt -k mykey -t m1.tiny 查看虚拟机列表

euca-describe-instances

找到刚建的虚拟机,如果已经授权过了对虚拟机的访问,则ping 其ip ,ssh登录测试,一般都会失败,可能是程序bug,但也有正常的时候,这时要检查一下dnsmasq是否开启了两个服务,若不是killall dnsmasq ;service nova-network restart。

可以查看/var/lib/nova/instances/instance-******/console.log

一般还不行,查看ip ad sh,查看br100中两个ip的位置,如果物理机ip在第一位,那么一般都不会ping通虚拟机,这时要删掉这两个ip,在分别加上,先加虚拟机网络的网关ip,再加物理机ip。

先删掉br100上的两个ip地址 删掉172的网段

ip addr del 172.16.0.1 dev br100 再删掉br100上的192网段

ip addr del 192.168.1.10 dev br100 然后再添加172网段,(先添加的显示在第一位) ip addr add 172.168.0.1/24 brd 172.16.0.255 dev br100

然后再添加192网段,通过ip ad sh 显示 :172在192的前面 ip addr add 192.168.1.10/24 brd 192.168.1.255 dev br100 然后检查 ip ad sh ,虚拟机网段要在第一位 重启服务

再次新建个虚拟机,基本上就能ping通,也能ssh 登录上了,这个问题太让人费解了 当然在删除ip的过程中,会把一些默认路由也删掉了。

停止一个虚拟机命令:

euca-terminate-instances i-1b0bh8n

手动分配ip地址

开启一个虚拟机后,openstack会自动为其分配一个ip地址,可以理解为固定ip地址(fixed_ips),openstack中还存在浮动ip地址(floating_ips),利用浮动ip,可以手动给虚拟机分配ip地址,内网和外网的都可以,同样要使用浮动ip地址也是要先建立浮动ip的地址池。

nova-manage floating create [hostname] [cidr]:为特定主机创建特定的浮动地址,可以是一个ip地址,也可以是一个子网。

nova-manage floating destroy [hostname] [cidr]:删除特定主机上的某浮动ip nova-manage floating list 显示浮动ip列表

创建好浮动ip地址池后可以用下面命令从池中获取一个ip地址。

euca-allocate-address

返回一个浮动ip地址池中的ip地址,然后就能分配这个ip地址给虚拟机 euca-associate-address -i [instance_id] [floating_ip]

这样就绑定floating_ip到instance_id,可以ping和ssh测试一下 当要把这个ip地址与虚拟机解除绑定时,运行

euca-disassociate-address[floating_ip] 解除浮动ip和虚拟机的绑定。

euca-deallocate-address [floating_ip]

返回一个ip,这个ip返回到ip池里,而且euca-allocate-addressk可以再次分配这个ip给其他虚拟机使用。

配置逻辑卷

安装lvm,openstack使用lvm管理逻辑卷,建立的逻辑卷可以分给虚拟机,在虚拟机看来是一块硬盘。openstack需要nova-volume服务。

安装lvm2和nova-volume

apt-get install lvm2 nova-volume 可以用一块单独的分区,也可以用一个回环设备做个测试,这里使用的是回环设备测试

dd if=/dev/zero of=/tmp/nova-volumes.img bs=1M seek=10000 count=0 losetup --show -f /tmp/nova-volumes.img

vgcreate nova-volumes /dev/loop0这里创建nova-volume逻辑卷组,openstack默认 接下来需要开启iscsitarget服务,安装iscsitarget时,默认并没有启动,做如下两步:

sed -i ‘s/false/true/g’ /etc/default/iscsitarget service iscsitarget start

查看iscsitarget服务有没有启动起来,有时就启动不起来,可以试一试下面的命令:

/etc/init.d/open-iscsi start

一次排错,在运行完这条命令之后就可以启动iscsitarget服务了。。。。 继续配置nova-volume,重启nova-volume服务。

service nova-volume restart nova-manage service list

可以看到nova-volume服务已经启动成功

由于前面已经用LVM建立了一个逻辑卷组nova-volumes,这里直接用这个卷组创建逻辑卷,并绑定到虚拟机上,euca2ools命令: euca-create-volume euca-attach-volume euca-detach-volume euca-delete-volume euca-describe-volumes

euca-create-volume -s 1 -z nova -s:大小 单位G, -z 区域,一般是nova euca-describe-volumes 可以显示创建的逻辑卷 给虚拟机绑定磁盘(逻辑卷)

euca-attach-volume vol-0000000e -i i-00000027 -d /dev/vdb vol-0000000e :逻辑卷id -i 实例id,也就是虚拟机id

-d 显示在虚拟机中的设备名称,如果虚拟机已经有了vda 、vdb ,那么这里就是/dev/vdc

然后登录虚拟机 i-00000027 用命令 fdisk -l ,发现多了块磁盘 /dev/vdb

euca-detach-volume euca-delete-volume 分别用来解绑逻辑卷,和删除逻辑卷

动态迁移

更新系统,升级硬件等都需要用到动态迁移,文件夹: NOVA-INST-DIR/instances/ (一般是/var/lib/nova/instances/)需要mount到共享存储上,这里用的是NFS。

首先要保证主机之间ping主机名时能够相互ping通。

ping hostA ping hostB ping hostC 安装nfs:

apt-get install nfs-kernel-server

在中心机上 配置 /etc/exports,添加内容如下:

/var/lib/nova/instances ubuntu10/255.255.255.0(rw,sync,fsid=0,no_root_squash) /etc/init.d/nfs-kernel-server restart 修改文件 /etc/default/nfs-common

设置 NEED_IDMAPD =yes

重启 /etc/init.d/nfs-kernel-server restart /etc/init.d/idmapd restart

这里用到了idmapd这个进程,如果不配置该进程的话,那么共享目录里的在客户端看不到共享文件的所属主和组,也不是nogroup,而是一个很大的数字,这样在nfs客户端是改不了文件所属主和组的,必须要配置idmapd这个进程,并开启该服务,如果这个服务没配置好开启,那么会出现\Remote I/O error\。

配置nfs客户端

修改文件 /etc/fstab 添加内容如下:

ubuntu10:/ /var/lib/nova/instances nfs4 defaults 0 0 配置了nfs4,所以ubuntu10后面直接用 \ 在两台机器上配置libvirt-bin 点10上

修改/etc/libvirt/libvirtd.conf 文件如下: 改前 : #listen_tls = 0 改后: listen_tls = 0 改前 : #listen_tcp = 1 改后: listen_tcp = 1

添加: auth_tcp = \

修改 /etc/init/libvirt-bin.conf

改前 : exec /usr/sbin/libvirtd $libvirtd_opts 改后 : exec /usr/sbin/libvirtd -d -l

修改 /etc/default/libvirt-bin 改前 :libvirtd_opts=\


openstack初步部署(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:企业微信监控有什么好处

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: