openstack随笔

来源:互联网 发布:无法无天 吾知txt 编辑:程序博客网 时间:2024/06/05 13:21
2015-4-17
openstack后端管理。zone的作用,分区域,可以把相同业务的放到一个区域,但是平台没有实现,做到了分数据中心,按照区域分配。
想法:把同一数据中心的机器硬盘连接起来当做一个硬盘使用,可以用技术实现,不是用openstack来实现。

镜像的磁盘格式和镜像的容器格式:
磁盘格式:
虚拟机的磁盘格式指的是底层磁盘镜像格式,虚拟机设备厂商有不同的格式放置虚拟机磁盘镜像包含的信息。设置你的镜像磁盘格式为下面的值:
1.raw 无结构的磁盘镜像格式;如果你有一个无扩展的磁盘文件,那么这个磁盘文件可能是裸格式
2.vmdk 能被多种虚拟机管理程序支持的通用格式
3.qcow2 由QEMU模拟器支持,能动态扩展以及支持写时复制特性
4.vhd VHD磁盘格式,一种被VMware,xen,microsoft,virtualbox以及其他虚拟机管理程序通用的磁盘格式
5.vdi  能被virtualbox虚拟机管理程序和QEMU模拟器支持的格式。
容器格式:
镜像容器格式表示包含虚拟机镜像的文件是否也包含虚拟机的metadata数据。

你可设置你的镜像容器格式为以下之一:

bare. 镜像没有容器或者没有封装metadata数据。

ovf. OVF容器格式。

aki. Amazon 内核镜像。

ari. Amazon ramdisk 镜像。

ami. Amazon 虚机镜像。

镜像制作:制作win2003   (需要以下文件)

virtio-win-0.1-30.vfd和virtio-win-0.1-30.iso 


Hypervisor(管理程序):
Hypervisor是一种运行在物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享一套基础物理硬件,因此也可以看作是虚拟环境中的“元”操作系统,它可以协调访问服务器上的所有物理设备和虚拟机,也叫虚拟机监视器(Virtual Machine Monitor)。Hypervisor是所有虚拟化技术的核心。非中断地支持多工作负载迁移的能力是Hypervisor的基本功能。当服务器启动并执行Hypervisor时,它会给每一台虚拟机分配适量的内存、CPU、网络和磁盘,并加载所有虚拟机的客户操作系统

OPS们在选择一款合适的合适的虚拟化平台时都要考虑哪些因素呢?如:虚拟化平台的性能,底层的技术实现,跟当前使用的系统的紧密程度,产品的成熟度,是否商业化还是开源,社区的活跃程度,用户支持等等,都是用户选择hypervisor(虚拟化管理程序)应该考虑的重要因素。

最近flexiant出了白皮书,对市场上主流的hypervisors:KVM, Xen, VMware and Hyper-V 做了详细的对比:

1.KVM- 基于linux的的开源hypervisor,最初是在2007年2月份融合到linux内核中,现在应该是应用最广泛的开源hypervisor。KVM现在用在Rdhat的一些产品上,如:Redhat Enterprise Virtualization (RHEV).

2.XEN- 同样是一款开源的hypervisor,2003年产生于剑桥大学的研究项目中。它运行在linux上(半虚拟化的hypervisor,dom0作为宿主机,运行Xen平台),最初是由XenSource提供技术支持,2007年被Citrix收购。

3.VMware- 并不是hypervisor,而是公司的名字,通常使用的vSphere使用了VMware’s ESXi hypervisor. VMware’s hypervisor是非常成熟稳定的。

 

4.Hpyer-V – 是一款有微软提供的商业化的hypervisor,运行在Windows平台上,但是内部可以运行任何其他的操作系统,并且支持多种硬件平台。



ubuntu openstack  安装心得:(ubuntu1404 juno版本)

NTP配置

1、配置ntp服务器,打开文件/etc/ntp.conf增加以下三行内容,目的是让本服务器时间与外部服务器时间同步。如果不能访问外网,NTP服务器将使用本机硬件时钟作为第二选择。

 server ntp.ubuntu.com

 server 127.127.1.0

 fudge 127.127.1.0 stratum 10

控制节点:ntp.conf配置文件。删除以server开头的时间池
 并添加server controller iburst


keystone认证服务

数据库服务认证:
1。
# admin_token = ADMIN
# 注意该信息,admin_token参数是用来访问Keystone服务的,即Keystone服务的Token。默认为ADMIN,当然也可以改成别的。客户端可以11使用该Token访问Keystone服务、查看信息、创建其他服务等。
2。
# public_port = 5000
# Keystone提供的认证授权服务监听的端口,通常为公网(外网),也可以是内网。
3。
# admin_port = 35357
# Keystone提供的认证授权、系统管理服务监听的端口,通常为内网。除了认证授权功能外,用户需要访问该端口来进行管理员操作,如创建删除Tenant、User、Role、Service、Endpoint等。
4。
# connection = sqlite:///keystone.db
# 此处为数据库参数,默认使用sqlite,并且指定数据库文件的存放位置,keystone.db表示在主目录下创建keystone.db文件,用于存放数据。也可以指定其他存储位置,例如sqlite:////var/lib/keystone/keystone.db。
# 当然也可以使用mysql,如mysql://root:123456@192.168.3.67/keystone,其中192.168.3.67为数据库地址,keystone为数据库名称,root为用户名,123456为访问密码。需要事先安装mysql,并且创建名为keystone的数据库,设置用户名密码。
5。
# token_format = PKI
# 此处需要特别注意,新版本中默认Token为PKI,因而需要为此设置PKI认证,较为麻烦,可改为UUID以方便使用,UUID是一个几十位的随机字符串。

导入环境变量
为了访问Keystone服务,客户端需要导入环境变量,当然也可以选择在执行访问Keystone的命令时加上相关参数。在本文档所描述的部署环境中,Keystone客户端与服务端处在同一台PC上。导入环境变量的方式有两种:

1. 在终端使用export命令,这种方式使得该环境变量的有效范围仅限于本终端。

# export SERVICE_TOKEN=ADMIN
# export SERVICE_ENDPOINT=http://192.168.3.67:35357/v2.0

      这里需要解释一下:

“SERVICE_ENDPOINT”是Keystone的Endpoint,即API入口。其中,“192.168.3.67”为安装Keystone服务的机器的IP,“35357”为Keystone提供的认证授权和系统管理服务监听的端口(通常为内网),用户需要访问该端口来进行管理员操作,如创建删除Tenant、User、Role、Service、Endpoint等,这在《配置Keystone》章节中已进行了说明。
“SERVICE_TOKEN”就是Keystone服务的Token,在《配置Keystone》章节中也已进行了说明。
2. 修改~/.bashrc文件,在文件尾部添加如下内容。(该文件包含当前用户Bash Shell的环境变量信息)

export SERVICE_TOKEN=ADMIN
export SERVICE_ENDPOINT=http://192.168.3.67:35357/v2.0

然后执行如下命令,以使修改生效。一旦生效,终生有效哦亲!

# . ~/.bashrc

      针对上述环境变量作如下说明:
SERVICE_TOKEN变量表示访问Keystone服务时使用的Token,与配置文件keystone.conf中的信息相对应,默认为ADMIN。
SERVICE_ENDPOINT变量表示Keystone服务的接入口,其中IP地址表明Keystone服务的安装位置,35357为默认访问端口。
于是,客户端就可以使用名为ADMIN的Token,通过给定的访问地址http://192.168.3.67:35357/v2.0来访问Keystone服务了。


openstack相关服务的删除卸载命令 
标签: mysql glance nova keystone ubuntu 分类: openstack
在装openstack时,出错的可能只是一个服务模块,比如mysql,keystone,glance,nova等等,我们就需要把相应的模块卸载掉,不用重装整个系统了,这可以节省我们很多的时间,但很多人有不知道完全卸载这些模块的命令,往往保留了以前装的错误的配置文件,这就需要我们把所有的配置文件都卸载干净。

现在我给大家提供一些完全卸载的命令,我们可以写成脚本语言,可以很方便的执行:
#!/usr/bin/env bash
#删除glance
apt-get remove -y glance glance-api glance-client glance-common glance-registry python-glance
#删除nova
apt-get remove -y nova-api nova-cert nova-common nova-compute nova-compute-kvm nova-doc nova-network nova-objectstore nova-scheduler  nova-volume python-nova python-novaclient  nova-consoleauth python-novnc novnc
删除dashboard
apt-get remove -y libapache2-mod-wsgi openstack-dashboard
#删除mysql数据库
apt-get remove -y mysql-server python-mysqldb
#删除keystone
apt-get remove -y keystone python-keystone python-keystoneclient


dpkg -l |grep keystone|awk '{print $2}'|xargs dpkg -P
dpkg -l |grep glance|awk '{print $2}'|xargs dpkg -P
dpkg -l |grep nova|awk '{print $2}'|xargs dpkg -P
dpkg -l |grep mysql|awk '{print $2}'|xargs dpkg -P
dpkg -l |grep libapache2-mod-wsgi|awk '{print $2}'|xargs dpkg -P


## 删除掉mysql里相应的数据库
MYSQL_PASSWD=${MYSQL_PASSWD:-"cloud1234"}
mysql -uroot -p$MYSQL_PASSWD -e "DROP DATABASE IF EXISTS nova;"
mysql -uroot -p$MYSQL_PASSWD -e "DROP DATABASE IF EXISTS glance;"
mysql -uroot -p$MYSQL_PASSWD -e "DROP DATABASE IF EXISTS keystone;"

删除mysql
1.sudo apt-get autoremove --purge mysql-server-5.5
2.sudo apt-get remove mysql-common
清理残留数据
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P 


dashboard页面登录:用户名和密码-----》这个用户名和密码来自keystone创建的用户名和密码
     即 keystone user-create --name admin --password --email 。。。

******最新随笔******

openstack 软硬重启区别,虚拟机挂起和暂停(pause)区别及其各个含义。

软重启会尝试正常关机并重启实例,硬重启会直接将实例“断电”并重启,
默认情况下,如果你是通过nova命令重启,执行的是软重启。
# nova reboot   SERVER
 如果需要执行硬重启。则需要添加参数:
# nova reboot --hard SERVER
关闭和开启实例
#nova pause INSTANCE_NAME
该实例会把服务器实例状态保存在内存中,暂停实例会依然运行,只是如同冰封了一样不能进行任何操作,恢复实例:
#nova unpause INSTANCE_NAME
停用和恢复实例:
如果在虚拟化软件层面上将实例停用:
# nova suspend  INSTANCE_NAME
 恢复停用实例:
#nova resume INSTANCE_NAME
二层网络路由设备  三层网络交换机。
QOS模块
linux的TCP/IP协议栈里依据QOS的几个RFC实现了自身QOS功能,QOS功能基本步骤分为过滤器(filter),分类器(class)和排队(QDisc)服务等。openvswitch中的端口入口方向限速用的是HTB机制
下面列举几种linux里面针对网卡或虚拟端口限速的tc命令:
(1)基于TBF的方式
tc qdisc add dev  eno0 root tbf rate 2000kbit latency 10ms burst 1600
(2)基于HTB的方式
tc qdisc del dev eno0 root
tc qdisc add dev eno0 root handle 1:htb  default 30
tc class add dev eno0 parent 1:0 classid classid 1:1 htb rate 2mbit ceil 2mbit burst 15k
tc qdisc add dev eno0 parent 1:`1 handle 10: sfq perturb 10
tc  filter add dev  eno0 protocol ip parent 1:0  prio 1 u32 match ip src 0.0.0.0/0 flowid 1:1
(3)基于CBQ的方式
详细讲《云计算网络珠玑》140页
(4)基于iptables命令也可以实现端口限速功能
iptabels -I  FORWARD 1 -i eno4 -s 0.0.0.0/0  -m limit 1000/s --limit-burst 10 -j ACCEPT


0 0
原创粉丝点击