Openstack云计算项目实施
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Openstack云计算项目实施相关的知识,希望对你有一定的参考价值。
Openstack 云计算架构
Version Icehouse 项目实施
目录 | ||||
1 | 前言 ............................................................................................. | |||
2 | 环境说明 ........................................................................................ | |||
2.1 | 硬件环境说明 ........................................................................... | |||
2.2 | 软件环境说明 ........................................................................... | |||
2.3 | 网络规划和 IP 地址规划 .......................................................... | |||
3 | 安装前准备 .................................................................................... | |||
3.1 | 系统安装说明 ........................................................................... | |||
3.2 | 主机配置 .................................................................................. | |||
3.3 | YUM 源 ........................................................................................ | |||
3.3.1 | 软件网络源下载并处理 .................................................. | |||
3.3.2 | 配置软件源 .................................................................... | |||
3.3.3 | 安装 Apache 并启动服务 .............................................. | |||
4 | 开始部署 openstack ..................................................................... | |||
4.1 | 部署控制节点 ......................................................................... | |||
4.1.1 | 安装 openstack-packstack .............................................. | |||
4.1.2 | 部署 ........................................................................... | |||
4.1.3 | 网桥配置 ...................................................................... | |||
4.2 | 部署扩展节点 ......................................................................... | |||
4.2.1 | 配置 ........................................................................... | |||
4.2.2 | 部署 ........................................................................... | |||
5 | 安装后日常运维........................................................................... |
5.1 | 创建网络 ......................................................................... | |||
5.1.1 | 创建外网 ................................................................ | |||
5.1.2 | 创建子网 ................................................................ | |||
5.1.3 | 创建内网 ................................................................ | |||
5.1.4 | 创建并编辑路由 .......................................................... | |||
5.2 | 制作镜像 ......................................................................... | |||
5.2.1 | 制作 linux 镜像(RHEL6.4) ............................................... | |||
5.3 | 上传镜像以及创建实例 ......................................................... | |||
5.3.1 | 实例和外网的连通 ........................................................ | |||
5.3.2 | 云主机分区调整 .......................................................... | |||
5.3.3 | 增加云主机访问带宽 .................................................... | |||
5.4 | 云主机应用扩展 .................................................................. | |||
6 | 扩展服务 ............................................................................... | |||
7 | 日常问题排查与解决 ................................................................... | |||
7.1 | 准备工作遇到的问题 ............................................................. | |||
7.1.1 | 物理主机分区问题 ........................................................ | |||
7.1.2 | 网络规划问题 ........................................................... | |||
7.2 | 部署环境遇到的问题 ............................................................. | |||
7.2.1 | 扩展节点出现异常 ........................................................ | |||
7.3 | 后期运维遇到的问题 ............................................................. | |||
8 | 注意事项 ............................................................................... | |||
9 | 资源下载 ..................................................................................... |
10 小结
11 参考文档
1 前言
本文是 Openstack Icehouse 版本详细的安装部署说明,本文的安装只涉及到单独的控制节点和计算节点,并不包含单独网络网络节点。
2 环境说明
2.1 硬件环境说明
服务器编号 | CPU | 内存 G | 硬盘 G | RAID | |
001 | 2*E5-2403 | 32 | 2*300 | RAID1 | |
8 核、超线程 | |||||
002 | |||||
003 | 4*E7-4830 | 32 | 2*300 | RAID1 | |
8 核、超线程 | |||||
004 | 4*≈840 | RAID5 | |||
2.2 软件环境说明
查看硬件环境之上的系统版本和内核参数
# rpm -qa centos-release
centos-release-6.6.e16.centos.12.2.x86_64
# uname -a
Linux YUN-11 2.6.32-504.3.3.e16.x86_64 #1SMP Web Dec 17 01:55:02 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
2.3 网络规划和 IP 地址规划
服务器 | 主机名 | 角色 | 网卡信息 | |
1U | YUN-10 | YUM 源/ntp 服务器 | eth0 192.168.0.100 | eth1 10.0.0.10 |
浪潮服务器 | YUN-11 | 控制节点 | eth2 192.168.0.101 | eth1 10.0.0.11 |
浪潮服务器 | YUN-12 | 扩展节点 | eth2 192.168.0.102 | eth1 10.0.0.12 |
浪潮服务器 | YUN-13 | 扩展节点 | eth1 192.168.0.103 | eth0 10.0.0.13 | |
浪潮服务器 | YUN-14 | 扩展节点 | eth3 192.168.0.104 | eth2 10.0.0.14 | |
网关 192.168.0.1 | 掩码 255.255.255.0 |
ip:192.168.0.100-192.168.0.106
3 安装前准备
3.1 系统安装说明
说明一:
选择时区“亚洲-上海”
说明二:
分区时选择“Use All Space”
因为 Openstack 云主机磁盘大小对应/ 分区的大小,另外 linux 分区默认情况下/home 分区比较大,而/ 分区太小,要按实际情况把/home分区调小,把/ 分区调大
说明三:
安装模式选择“Minimal”
3.2 主机配置
配置 1:网络配置
按照地址规划,给服务器配置相应的 IP 地址测试主机之间的连通状况
配置 2:hosts 文件配置
以主机 YUN-11 为例
# vi /etc/hosts
添加下面内容
127.0.0.1 YUN-11
其他主机依次做修改
3.3 YUM 源
3.3.1 软件网络源下载并处理
在一台可以连通网络的 linux 主机上下载网络软件源,因为网络软件源过大,所以这里要求 linux 主机磁盘不能太小(50G 以上就行),网速必须要快,在根目录下下载,因为安装是在 CentOS 发行版下进行,所以首先将 CentOS 的源拿到本地。
# wget -S -c -r -np -L http://mirrors.163.com/centos/6/--accept=rpm,gz,xml
下载 OpenStack-Icehouse 版本的包
# wget -c -r -np --reject=html,gif,A,D -nH http://repos.fedorapeople. org/repos/openstack/openstack-icehouse/epel-6/
下载 puppet 包
# wget -S -c -r -np -L https://yum.puppetlabs.com/el/6/.
下载 epel test 相关包
# wget -S -c -r -np -L http://dl.fedoraproject.org/pub/epel/testing/6/.
下载 epel 包
# wget -S -c -r -np -L http://dl.fedoraproject.org/pub/epel/6/.
下载 foreman 包
# wget -S -c -r -np -L http://yum.theforeman.org/plugins/1.5/el6/
# wget -S -c -r -np -L http://yum.theforeman.org/release/1.5/el6/
过程会持续很长时间
下载完成后需要删除安装过程用不着的软件
# cd /yum.puppetlabs.com/el/6/devel
# rm -rf SRPMS
# rm -rf i386
# cd /dl.fedoraproject.org/pub/epel/testing/6/
# rm -rf SRPMS
# rm -rf i386
# rm -rf ppc64
# cd /dl.fedoraproject.org/pub/epel/6/
# rm -rf SRPMS
# rm -rf i386
# rm -rf ppc64
# cd /yum.theforeman.org/plugins/1.5/el6/
# rm -rf source
# cd /yum.theforeman.org/release/1.5/el6/
# rm -rf source
3.3.2 配置软件源
在四个物理节点上做下列操作
# cd /etc/yum.repos.d
# mv CentOS-Base.repo CentOS-Base.repo.bak
上传 CentOS6-Base-163.repo 、 epel-release-6-8.noarch.rpm 和 rdo-release-icehouse-4.noarch.rpm 到该目录下
# rpm -ivh epel-release-6-8.noarch.rpm
# rpm -ivh rdo-release-icehouse-4.noarch.rpm
编辑目录下面的五个 repo 文件
# mv CentOS6-Base.repo CentOS-Base.repo
# vi CentOS-Base.repo
内容如下
[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$bas
earch&repo=os
baseurl=http://192.168.0.100/mirror.centos.org/centos/$releasever/os/$
basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#released updates
[updates]
name=CentOS-$releasever - Updates
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$bas
earch&repo=updates
baseurl=http://192.168.0.100/mirror.centos.org/centos/$releasever/upda
tes/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$bas
earch&repo=extras
baseurl=http://192.168.0.100/mirror.centos.org/centos/$releasever/extra
s/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#additional packages that extend functionality of existing packages [centosplus]
name=CentOS-$releasever - Plus
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$bas
earch&repo=centosplus
baseurl=http://192.168.0.100/mirror.centos.org/centos/$releasever/cent
osplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$bas
earch&repo=contrib
baseurl=http://192.168.0.100/mirror.centos.org/centos/$releasever/contr
ib/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
# vi epel.repo
内容如下
[epel]
name=Epel Repository
baseurl=http://192.168.0.100/dl.fedoraproject.org/pub/epel/6/$basearch
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs
enabled=1
gpgcheck=0
[epel-testing]
name=Epel-testing Repository
baseurl=http://192.168.0.100/dl.fedoraproject.org/pub/epel/testing/6/$b
asearch
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs
enabled=1
gpgcheck=0
# vi foreman.repo
内容如下
[foreman]
name=Foreman stable
baseurl=http://192.168.0.100/yum.theforeman.org/releases/1.5/el6/x86_
64
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-foreman
[foreman-plugins]
name=Foreman stable - plugins
baseurl=http://192.168.0.100/yum.theforeman.org/plugins/1.5/el6/x86_
64
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-foreman
# vi puppetlabs.repo
内容如下
[puppetlabs-products]
name=Puppet Labs Products - $basearch
baseurl=http://192.168.0.100/yum.puppetlabs.com/el/6/products/$base
arch
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs
enabled=1
gpgcheck=0
[puppetlabs-deps]
name=Puppet Labs Dependencies - $basearch
baseurl=http://192.168.0.100/yum.puppetlabs.com/el/6/dependencies/$
basearch
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs
enabled=1
gpgcheck=0
[puppetlabs-devel]
name=Puppet Labs Devel - $basearch
baseurl=http://192.168.0.100/yum.puppetlabs.com/el/6/devel/$basearch
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs
enabled=1
gpgcheck=0
# vi rdo-release.repo
内容如下
[openstack-icehouse]
name=OpenStack Icehouse Repository
baseurl=http://192.168.0.100/repos.fedorapeople.org/repos/openstack/o
penstack-icehouse/epel-6/
enabled=1
skip_if_unavailable=0
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-RDO-Icehouse
priority=98
#yum clean all
#yum makecache
3.3.3 安装 Apache 并启动服务
转到 YUM 源服务器上
# yum install -y httpd
# service httpd start
# chkconfig httpd on
# rm -f /etc/httpd/conf.d/welcome.conf(删除 web 欢迎页面)
把之前处理完成后的软件拷贝到 YUM 源服务器/var/www/html 目录
然后把/yum.theforeman.org/release 和/yum.theforeman.org/plugins 目
录以及目录下的文件放到/yum.theforeman.org 目录下
4 开始部署 openstack
4.1 部署控制节点
4.1.1 安装 openstack-packstack
# yum install -y openstack-packstack
# yum update
# reboot
4.1.2 部署
# packstack --allinone --provision-all-in-one-ovs-bridge=n --provision-d emo=n
4.1.3 网桥配置
# vi /etc/syscofnfig/network-scripts/ifcfg-eth2
内容如下
DEVICE=eth2
HWADDR=xx:xx:xx:xx:xx:xx
TYPE=OVSPort
OVS_BRIDGE=br-ex
DEVICETYPE=ovs
ONBOOT=yes
# vi /etc/syscofnfig/network-scripts/ifcfg-br-ex
内容如下
DEVICE=br-ex
DEVICETYPE=ovs
TYPE=OVSBridge
BOOTPROTO=static
IPADDR=192.168.0.101
NETMASK=255.255.255.0
GATEWAY=10.231.29.1
ONBOOT=yes
# vi/etc/syscofnfig/network-scripts/ifcfg-eth1 BOOTPROTO=dhcp
to BOOTPROTO=none
添加
IPADDR=10.0.0.11
NETMASK=255.255.255.0
# vi /etc/neutron/plugin.ini
network_vlan_ranges = physnet1(修改)
bridge_mappings = physnet1:br-ex(添加)
这里需要注意的是添加的内容要靠着左边,不能有空格
# ovs-vsctl add-port br-ex eth2
(使用不间断重启网络)
4.2 部署扩展节点
4.2.1 配置
控制节点上
# cd /root
# vi packstack-answer-xxxx.txt (xxxx 为时间日期序号) CONFIG_NOVA_COMPUTE_PRIVIF=lo
to
CONFIG_NOVA_COMPUTE_PRIVIF=eth2
CONFIG_NOVA_NETWORK_PRIVIF=lo
to
CONFIG_NOVA_NETWORK_PRIVIF=eth2
CONFIG_COMPUTE_HOSTS=192.168.0.101
to
CONFIG_COMPUTE_HOSTS=192.168.0.102,192.168.0.103,192.168.0.104
(这里需要注意的是把 lo 改为 eth2 网卡并不一定使用与其他物理环境,
这里指实际应用的第二块网卡,在实际部署时要视情况而定)
4.2.2 部署
packstack --answer-file= packstack-answer-xxxx.txt
5 安装后日常运维
运维基本的操作都在控制节点上的,较为方便的方式就是在openstack 的 dashboard(仪表盘)中进行,进入 dashboard 的方式就是直接在浏览器中输入控制节点的 IP 地址。(需要注意的是浏览器选择方面最好选择火狐浏览器或则谷歌浏览器,因为相对于 IE 浏览器而言,前面两个浏览器对于 openstack 的支持性要好,使用 IE 会在打开实例控制台时无法进入,出现“No vnc....”的错误信息)
用户名和密码放在控制节点/root 下,存放在文件名为 keystonerc_admin 的文件中,登陆用户参数为 export OS_USERNAME,密码参数为export OS_PASSWORD。
5.1 创建网络
登陆 dashboard
5.1.1 创建外网
点击左侧的“管理员”,选择“网络”,点击“创建网络”
网络名称:public_network(网络名称为自定义名称)
选择项目:admin
“外部网络”打对勾(这一步尤为重要)
5.1.2 创建子网
单击创建的网络,再点击“创建子网”
子网名称 :public_subnet
网络地址 :10.231.29.0/25
“激活 DHCP”去掉对勾
分配地址池:192.168.0.50,192.168.0.106
点击“已创建”
5.1.3 创建内网
“项目”---“网络”---“网络”
点击“创建网络”
网络名称:private_network
子网名称:private_subnet
网络地址:10.10.0.0、24
分配地址池:10.10.0.2,10.10.0.254
点击“已创建”
5.1.4 创建并编辑路由
创建路由
“项目”---“网络”---“路由”
点击“新建路由”
路由名称:router1
编辑路由
点击“路由”---“设置网关”
选择“外部网络 public_network”
增加路由接口
点击生成的路由
点击“增加接口”
选择“子网 private_network”
5.2 制作镜像
5.2.1 制作 linux 镜像(RHEL6.4)
环境说明:
说明 1:
底层环境是 WIN7+vmware workstation,虚拟机是 Centos6.5 且带有桌面环境(这里需要注意的是安装桌面版的系统是为了制作过程中调用镜像制作的面板)
说明 2:
在 vmware workstation 环境下需要开启 CPU 虚拟化支持选择虚拟机,右键点击-硬件-处理器-优先模式-Intel VT-x/EPT orAMD-V/RVI在优先模式下面的 Intel VT-x/EPT or AMD-V/RVI 打上对勾。
开始制作
# yum groupinstall -y Virtualization "Virtualization Client"
# yum install -y libvirt
# service libvirtd restart
# mkdir /openstack-image
# cd /openstack-image
# qemu-img create -f qcow2 rhel-openstack.img 10G
# chown qemu:qemu /openstack-image -R
# virt-install -n rhelimg -r 1024 --cpu host -c /images/rhel-server-6. 4-x86_64-dvd.iso --disk path=/openstack-image/rhel-openstack.img,de vice=disk,bus=virtio,size=30,format=qcow2 --vnc --vncport=5900 --vncl isten=0.0.0.0 -v
注意事项:
注意事项 1:
分区,分区的时候只给"/" 根目录分一个区即可,其他都不要。
注意事项 2:
网络设置方面,确保你的网卡 eth0 是 DHCP 状态的
网卡配置如下
# cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE="eth0"
BOOTPROTO="dhcp" NM_CONTROLLED="yes" ONBOOT="yes" TYPE="Ethernet"
# rm -rf /etc/udev/rules.d/70-persistent-net.rules
关闭防火墙和 selinux
# sed -i s/^SELINUX=.*/SELINUX=disabled/g /etc/selinux/config
# service iptables stop && chkconfig iptables off
# service ip6tables stop && chkconfig ip6tables off
关机
5.3 上传镜像以及创建实例
上传镜像
“项目”---“Compute”---“镜像”
点击“创建镜像”
名称:rhel6.4
镜像源:镜像文件
镜像文件:选择文件(选择存放镜像的位置)
格式化:QCOW2-QEMU 模拟器
点击“创建镜像”
启动云主机
在刚创建的镜像后面点击“运行”
云主机名称:YUM-TEST
云主机:选择对应的云主机类型
网络:private_network
点击“运行”
在 dashboard 中创建的实例不能指定创建在哪一个物理主机上,所以一般有项目规划的情况下,都会把实例指定创建在某台物理主机上下面就指定创建实例
注:
针对 openstack 的操作都是通过特殊途径的,首先在控制节点上,切换到/root 目录下,输入. keystonerc_admin,需要注意的是点和
keystonerc_admin 之间必须有空格
查看镜像
# nova image-list
查看网络 | |||||
# nova network-list | |||||
+-------------------------------------- | +----------------- | +------ | + | ||
| ID | | Label | | Cidr | | |||
+-------------------------------------- | +----------------- | +------ | + | ||
| 8dec0402-6ad7-4390-9c0d-60badaffc718 | public_network | | - | | | |||
| e49ae481-475c-4e36-bdcd-cc0967dab675 | private_network | - | | | ||||
+-------------------------------------- | +----------------- | +------ | + |
注:创建实例需要指定网络
# nova boot --image fedora --flavor 1 test1 --availability-zone
nova:node-1 --nic net-id=e49ae481-475c-4e36-bdcd-cc0967dab675
参数说明:
fedora:镜像名
1 :级别
test1:实例名
nova:域名
node-1:主机名
net-id=e49ae481-475c-4e36-bdcd-cc0967dab675 :网卡 id
其他部分命令实例:
查看集群服务
# nova-manage service list
查看云主机
# nova list
查看云主机详细信息
# nova show <vm-id>
查看集群服务
# nova host-list
查看集群
# nova hypervisor-list
查看目标节点资源
# nova-manage service describe_resource node2(node2 是对应主机名)
5.3.1 实例和外网的连通
添加规则,生成并绑定浮动 ip为了外网的机器能够访问云主机,需要为云主机绑定浮动 IP,另外添加相应服务的规则
添加规则(为了能够通过 SSH 方式访问实例)
“项目”---“Compute”---“访问&安全”---“安全组”
点击“添加规则”
端口:22
点击“添加”
添加第二个规则(为了能够 PING 通实例)
规则:定制 ICMP 规则
类型:-1
编码:-1
点击“添加”
绑定浮动 IP
“项目”---“Compute”---“访问&安全”---“浮动 IP”
点击“分配 IP 给项目”
找到要分配的 IP,点击“关联”,选择相应的云主机
5.3.2 云主机分区调整
新建的云主机会有一些问题
问题 1:
没有 swap 分区
问题 2:
根分区太小,大部分空间都没有分配
调整分区
增加交换分区
首先在外部网络使用 shell 工具通过 ssh 方式登录云主机
# fdisk /dev/vda
主要命令
d 删除分区
n 新增主分区、扩展分区、逻辑分区
p 显示分区
t 转换分区格式
w 保存分区表
Command(m for help):n
增加主分区,因为扩展分区不能作为交换分区
分区大小除了开始结束范围,还可以用 +16G 这种方式表示。
Command(m for help):t
82 表示交换分区 id
Command(m for help):w
保存退出
使分区生效
# partprobe
如果系统没有此命令,安装 yum install -y parted 或者重启云主机
将/dev/vda2 分区格式化为交换分区
# mkswap /dev/vda2
挂载交换分区
# swapon /dev/vda2
注:
卸载交换分区
# swapoff /dev/vda2
查看交换分区设置成功
[[email protected] ~]# free
total | used | free | shared | buffers | cached | |
Mem: | 16332544 | 256196 | 16076348 | 0 | 6440 | 42460 |
-/+ buffers/cache: | 207296 | 16125248 |
Swap: 33556428 | 0 | 33556428 |
修改分区表自动挂载 swap 分区
# vi /etc/fstab
新增一行
/dev/vda2 swap swap defaults 0 0
挂载分区到/home(挂载分区到其他目录应该依照实际情况而定,这里以挂载到/home 为例)
# fdisk /dev/vda
新增扩展分区,新增逻辑分区
格式化分区
# mkfs.ext4 /dev/vda5
修改分区表
# vi /etc/fstab
新增
/dev/vda5 /home ext4 defaults 0 2
注:
最后一个 2 是 pass 选项
pass 选项:
0 不会被 fsck utility 检查
1 root 用户应该有最高优先权
2 如果你想被 check 就选择 2
# partprobe
5.3.3 增加云主机访问带宽
在控制节点
# vi /etc/neutron/dhcp_agent.ini
dnsmasq_config_file = /etc/neutron/dnsmasq-neutron.conf
# vi /etc/neutron/dnsmasq-neutron.conf
添加
dhcp-option-force=26,1400
在控制节点以及各个云主机上
# ethtool -K eth2 tso off
# ethtool -K eth2 gro off
注:
这里修改的网卡配置对应的网卡依照实际情况而定,例如在控制节点
就是指 eth2 网卡
把命令写进启动脚本里(在控制节点以及各新建云主机上操作)
# vi /etc/rc.d/rc.local
在最后添加
ethtool -k eth1 tso off
5.4 云主机应用扩展
案例 1:
云主机选择镜像为最小化安装系统的镜像,但是在实际部署云主机之后,发现在部署应用的过程需要桌面环境的支持,这就需要为云主机安装桌面环境。
安装桌面环境:
# yum grouplist |more
按需安装软件组
# yum groupinstall -y "Desktop" "Desktop Platform" "Desktop
Platform Development" "Fonts" "General Purpose Desktop" "Graphical Administration Tools" "Graphics Creation Tools" "Input Methods" "X Window System" "Chinese Support [zh]" "Internet
Browser"
# vi /etc/inittab
修改启动级别为 5
重启
客户若想能够远程连接桌面,则需要在云主机端和客户登陆端做部分配置
在云主机 Linux 平台安装 VNCServer 服务端软件包
# yum -y install vnc *vnc-server*
修改 VNCServer 主配置文件
# vi /etc/sysconfig/vncservers
复制下面两行并去掉行首注释符,然后修改为
VNCSERVERS="1:root" VNCSERVERARGS[1]="-geometry 1024x768" 【1024x768 的“x 不可以改为*”】
设置 VNCServer 远程连接密码
# vncpasswd
输入两次相同的密码
重启 vncserver 服务
# service vncserver start
上一步执行完毕会在 root 宿主目录下生成.vnc 开头的隐藏目录,该目
录下面的文件就是 root 用户的 VNC 桌面配置文件,编辑 xstartup
# vi /root/.vnc/xstartup
将最后一行改为
gnome &
使用 GNOME 桌面
(查看是否为 gnome 桌面,用 ps -A 命令查看是否有相关进程)
开启防火墙 VNCServer 端口
# vi /etc/sysconfig/iptables
在“-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT”下
面添加一行
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5901 -j ACCEPT
(这一行不能添加到最后)
重启 iptables 服务
# service iptables restart
然后再客户登陆端做操作,这里以登陆端为 windows 系统为例
在 Windows 客户端下打开 http://www.realvnc.com/,下载对应平台的VNC-Viewer 客户端(该文件为绿色软件,无需安装),双击下载下来
的文件即可打开
打开软件
在 VNC Server 一栏输入 192.168.1.78:1(对应的服务器端地址,注意不要丢失)
6 扩展服务
7 日常问题排查与解决
7.1 准备工作遇到的问题
7.1.1 物理主机分区问题
案例:
在物理主机安装系统过程中忘记调整分区,结果在 openstack 部署之后发现 openstack 集群磁盘总量太小,原因是安装系统默认分区/home 分区过大,而/ 分区过小,openstack 集群磁盘识别的是系统/
分区
解决办法:
以控制节点为例
查看分区
[[email protected]YUN-11 ~]# fdisk -l
WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.
Disk /dev/sda: 299.6 GB, 299563483136 bytes
255 heads, 63 sectors/track, 36419 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Device Boot /dev/sda1 Start End Blocks Id System
1 36420 292542463+ ee GPT
Disk /dev/mapper/vg_YUN2-lv_root: 53.7 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/mapper/vg_YUN2-lv_swap: 16.9 GB, 16894656512 bytes 255 heads, 63 sectors/track, 2053 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/mapper/vg_YUN2-lv_home: 228.2 GB, 228241440768 bytes 255 heads, 63 sectors/track, 27748 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
可 以 看 到 /dev/mapper/vg_YUN2-lv_root 太 小 , 而 /dev/mapper/vg_YUN2-lv_home 比较大,但是云主机磁盘使用的是/dev/mapper/vg_YUN2-lv_root 分区
下面对分区做一下调整
卸载/home 分区(如果/home 分区下有文件,需要先备份,这里尤为
重要)
# umount /home
检查分区
# e2fsck -f /dev/mapper/vg_YUN2-lv_home
调整 home 分区大小
# resize2fs -p /dev/mapper/vg_YUN2-lv_home 2G
挂载/home 分区
# mount /home
调整/dev/mapper/vg_YUN2-lv_home 大小
# lvreduce -L 2G /dev/mapper/vg_YUN2-lv_home
查看分区
[[email protected]YUN-11 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_YUN2-lv_root
50G 2.2G 45G 5% /
tmpfs | 16G | 4.0K | 16G | 1% | /dev/shm |
/dev/sda2 | 477M | 49M | 404M | 11% | /boot |
/dev/sda1 | 200M | 260K | 200M | 1% | /boot/efi |
/srv/loopback-device/swiftloopback
1.9G 3.1M 1.8G 1% /srv/node/swiftloopback
/dev/mapper/vg_YUN2-lv_home
1.9G 25M 1.8G 2% /home
[[email protected]YUN-11 ~]# vgdisplay | |
--- Volume group --- | |
VG Name | vg_YUN2 |
System ID | |
Format | lvm2 |
Metadata Areas | 1 |
Metadata Sequence No | 5 |
VG Access | read/write |
VG Status | resizable |
MAX LV | 0 |
Cur LV | 3 |
Open LV | 3 |
Max PV | 0 |
Cur PV | 1 |
Act PV | 1 |
VG Size | 278.30 GiB |
PE Size | 4.00 MiB |
Total PE | 71245 |
Alloc PE / Size | 17340 / 67.73 GiB |
Free PE / Size | 53905 / 210.57 GiB |
VG UUID | gwRY1M-61we-pric-21Wk-pTyk-2bF9-i5koBQ |
--- Volume group --- | |
VG Name | cinder-volumes |
System ID | |
Format | lvm2 |
Metadata Areas | 1 |
Metadata Sequence No | 1 |
VG Access | read/write |
VG Status | resizable |
MAX LV | 0 |
Cur LV | 0 |
Open LV | 0 |
Max PV | 0 |
Cur PV | 1 |
Act PV | 1 |
VG Size | 20.60 GiB |
PE Size | 4.00 MiB |
Total PE | 5273 |
Alloc PE / Size | 0 / 0 |
Free PE / Size | 5273 / 20.60 GiB |
VG UUID | sqfFLq-QOvj-awvz-M5HG-MDj3-5SZE-h4Snlc |
注意上面粗字体的一行,可以发现已经有 210.57 GiB 空闲空间
接下来调整/dev/mapper/vg_YUN2-lv_root 分区
# lvextend -L +182.27G /dev/mapper/vg_YUN2-lv_root
# resize2fs -p /dev/mapper/vg_YUN2-lv_root
再次查看分区 | ||||
[[email protected]YUN-11 ~]# df -h | ||||
Filesystem | Size Used Avail Use% Mounted on | |||
/dev/mapper/vg_YUN2-lv_root | ||||
229G | 2.2G | 215G | 2% / | |
tmpfs | 16G | 4.0K | 16G | 1% /dev/shm |
/dev/sda2 | 477M | 49M | 404M | 11% /boot |
/dev/sda1 | 200M | 260K | 200M | 1% /boot/efi |
/srv/loopback-device/swiftloopback | ||||
1.9G | 3.1M | 1.8G | 1% /srv/node/swiftloopback | |
/dev/mapper/vg_YUN2-lv_home | ||||
1.9G | 25M | 1.8G | 2% /home | |
[[email protected]YUN-11 ~]# vgdisplay | ||||
--- Volume group --- | ||||
VG Name | vg_YUN2 | |||
System ID | ||||
Format | lvm2 | |||
Metadata Areas | 1 | |||
Metadata Sequence No 6 | ||||
VG Access | read/write | |||
VG Status | resizable | |||
MAX LV | 0 | |||
Cur LV | 3 | |||
Open LV | 3 | |||
Max PV | 0 | |||
Cur PV | 1 | |||
Act PV | 1 | |||
VG Size | 278.30 GiB | |||
PE Size | 4.00 MiB | |||
Total PE | 71245 |
Alloc PE / Size | 64002 / 250.01 GiB | |
Free | PE / Size | 7243 / 28.29 GiB |
VG UUID | gwRY1M-61we-pric-21Wk-pTyk-2bF9-i5koBQ | |
--- Volume group --- | ||
VG Name | cinder-volumes | |
System ID | ||
Format | lvm2 | |
Metadata Areas | 1 | |
Metadata Sequence No | 1 | |
VG Access | read/write | |
VG Status | resizable | |
MAX LV | 0 | |
Cur LV | 0 | |
Open LV | 0 | |
Max PV | 0 | |
Cur PV | 1 | |
Act PV | 1 | |
VG Size | 20.60 GiB | |
PE Size | 4.00 MiB | |
Total PE | 5273 | |
Alloc PE / Size | 0 / 0 | |
Free | PE / Size | 5273 / 20.60 GiB |
VG UUID | sqfFLq-QOvj-awvz-M5HG-MDj3-5SZE-h4Snlc |
可以看到 root 分区调整的更大了
7.1.2 网络规划问题
在网络规划中最好不要把 openstack 集群内网 IP 地址和物理服务器集群对内服务网卡 IP 地址在同一个网段,容易造成 IP 地址不容易管理
7.2 部署环境遇到的问题
7.2.1 扩展节点出现异常
案例 1:
在扩展节点完成后,发现扩展节点的 NOVA 服务状态是 down
提示信息:
查看日志控制节点日志/var/log/nova/compute.log
AMQP server on <server>:5672 is unreachable: Socket closed
原因:
在扩展节点之前没有在配置节点上配置网桥
案例 2:
扩展节点的过程中出现错误
提示信息:
192.168.0.101_keystone.pp: [ ERROR ]
Applying Puppet manifests [ ERROR ]
ERROR : Error appeared during Puppet run: 192.168.0.101_keystone. pp
Error: /Stage[main]/Keystone::Roles::Admin/Keystone_user[admin]: Could not evaluate: Execution of '/usr/bin/keystone --os-auth-url http://127.0.0.1:35357/v2.0/ token-get' returned 1: The request you hav e made requires authentication. (HTTP 401)
You will find full trace in log /var/tmp/packstack/20150209-133712-oZcG_v/manifests/192.168.0.101_keystone.pp.log
Please check log file /var/tmp/packstack/20150209-133712-oZcG_v/o penstack-setup.log for more information
原因:
在 dashboard 修改登录密码没有在配置文件修改解决办法:
# vi packstack-answers-20150130-201639.txt
CONFIG_KEYSTONE_ADMIN_PW=hndlyptl(参数之后是重新设置的密码)
案例 3:
扩展节点之后,由于实际需要把扩展节点所在的物理主机替换掉,结果在 dashboard 中仍然存在原来的扩展节点
解决办法:(以删除节点 YUN-14 为例)
在扩展节点上
# mysql mysql>use nova;
mysql> select id,service_id,host_ip from compute_nodes; +----+------------+--------------+
| id | service_id | host_ip | | | |||
+---- | +------------ | + | -------------- | + |
| | 1 | | 5 | 192.168.0.101 | | ||
| | 2 | | 7 | 192.168.0.102 | | ||
| | 3 | | 8 | 192.168.0.103 | | ||
| | 4 | | 9 | 192.168.0.104 | | ||
+---- | +------------ | + | -------------- | + |
4 rows in set (0.00 sec)
mysql> delete from compute_nodes where id=4; Query OK, 1 row affected (0.01 sec)
mysql> delete from services where host='YUN-14'; Query OK, 1 row affected (0.00 sec)
7.3 后期运维遇到的问题
8 注意事项
注意事项 1:
在创建网络时,需要开启内网的 DHCP 功能
注意事项 2:
云主机不能修改 IP 地址
注意事项 3:
在创建完实例之后要查看资源占用情况,确认云主机的创建和资源没有冲突
注意事项 4:
对于各节点来说对待防火墙一定要慎重处理,不能关闭控制节点以及计算节点的防火墙
9 资源下载
repo 文件下载链接
http://mirrors.163.com/.help/CentOS6-Base-163.repo
http://mirrors.zju.edu.cn/epel/6/x86_64/epel-release-6-8.noarch.rpm
https://repos.fedorapeople.org/repos/openstack/openstack-icehouse/rdo-release-icehouse-4.noarch.rpm
10 小结
11 参考文档
部署 RDO 参考文档
https://www.rdoproject.org/Neutron_with_existing_external_network
http://www.it165.net/os/html/201410/9532.html
网络优化参考文档
https://ask.openstack.org/en/question/25306/slow-network-speed-between-vm-and-external/
http://www.chenshake.com/how-node-installation-centos-6-4-openstack-havana-ovsgre/
以上是关于Openstack云计算项目实施的主要内容,如果未能解决你的问题,请参考以下文章