独立安装openstack组件

准备服务器,为安装openstack的服务器加3块额外硬盘
qemu-img create -f qcow2 rh71.img 20G
qemu-img create -f qcow2 rh71.img 20G
qemu-img create -f qcow2 rh71.img 20G

keystone介绍
keystone是openstack框架中的一个重要组成部分,负责身份认证
服务管理,服务规则和服务令牌的功能,它实现了openstack的identity api
keystone是整个openstack框架中的注册表,其他服务通过keystone来注册服务
任何服务之前相互的调用,都需要keystone的身份验证来获得目标服务
keystone包含两个主要部件,验证与服务目录

常见术语
租户(tenant):使用openstack云的客户
用户(user):表示拥有用户名,密码,邮箱等帐号信息的个人角色
角色(role):代表特定的租户中的用户操作权限
服务(service):一个openstack服务,如nova,swift,glance或keystone
端点(endpoint):一个可以通过网络访问的地址,代表了openstack服务的api入口
模板(template):一个端点集合,代表一组可用的openstack服务端点

安装配置keystone
[root@rhel7v2 ~]# yum -y install openstack-keystone openstack-selinux
[root@rhel7v2 ~]# yum -y install openstack-utils
[root@rhel7v2 ~]# openstack-db --init --service keystone(初始化数据库)
[root@rhel7v2 ~]# keystone-manage pki_setup --keystone-user keystone --keystone-group keystone(生成签名信息)
[root@rhel7v2 ~]# export SERVICE_TOKEN=$(openssl rand -hex 10)(设置环境变量)
[root@rhel7v2 ~]# export SERVICE_ENDPOINT=http://192.168.4.10:35357/v2.0(改为本机ip)
[root@rhel7v2 ~]# echo $SERVICE_TOKEN > /root/ks_admin_token(备份令牌)
[root@rhel7v2 ~]# crudini --set /etc/keystone/keystone.conf DEFAULT admin_token $SERVICE_TOKEN
[root@rhel7v2 ~]# systemctl start openstack-keystone
[root@rhel7v2 ~]# systemctl enable openstack-keystone
[root@rhel7v2 ~]# systemctl enable mariadb
[root@rhel7v2 ~]# keystone service-create --name=keystone --type=identity --description="Keystone Identity Service"
[root@rhel7v2 ~]# keystone endpoint-create --service-id 5cb86e5624ba43348b661d4031fd2de7 --publicurl 'http://192.168.4.10:5000/v2.0' --adminurl 'http://192.168.4.10:35357/v2.0' --internalurl 'http://192.168.4.11:5000/v2.0'(为它创建端点)
[root@rhel7v2 ~]# keystone user-create --name admin --pass 123456
[root@rhel7v2 ~]# keystone role-create --name admin
[root@rhel7v2 ~]# keystone tenant-create --name admin
[root@rhel7v2 ~]# keystone user-role-add --user admin --role admin --tenant admin(创建用户)
[root@rhel7v2 ~]# vim ~/keystonerc_admin(写入环境变量)
export OS_USERNAME=admin
export OS_TENANT_NAME=admin
export OS_PASSWORD=123456
export OS_AUTH_URL=http://192.168.4.10:35357/v2.0
[root@rhel7v2 ~]# source keystonerc_admin(生效)

——————————————————————————————————————————————————————————————

swift介绍
swift是openstack开源云计算项目的子项目之一,提供对象存储
swift最适合的就是永久类型的静态数据的长期存储
由于swift多节点和多副本的设计使得swift具有较高的数据持久性
完全对称是指系统中每个节点具有同等的地位,没有主从之分
扩容的时候只需要简单的添加机器,系统会自动完成数据的迁移
swift中元数据是完全随机存储的,并且与对象文件一样,也会保存多份在多个节点上,避免单点故障

常见术语
account(账户):出于访问安全性考虑,使用swift系统,每个用户必须有一个帐号才能访问
container(容器):容器的工作九三处理对象列表,它并不知道对象在哪,只知道容器里存有哪些对象
object:数据存储的内容,使用ext4或者xfs文件系统
replica(存储副本):确保数据的高可用,至少三个副本
zone(存储区域):用在数据复制,确保每份副本可用分开存储
region(存储范围):一组存储区域

数据存储原理:
ring是swift中最重要的组件,用于记录存储对象与物理位置间映射关系
ring用来确定数据驻留子啊集群中的位置,有单独对应与account,container和boject的ring
ring是存储在硬盘上的实体名称和物理位置间的映射,环使用区域,设备,分区和副本来维护这些映射信息

安装配置swift
[root@rhel7v2 ~]# yum -y install openstack-swift-proxy openstack-swift-object openstack-swift-container openstack-swift-account python-swiftclient memcached
[root@rhel7v2 ~]# keystone user-create --name swift --pass 123456
[root@rhel7v2 ~]# keystone tenant-create --name services
[root@rhel7v2 ~]# keystone user-role-add --role admin --tenant services --user swift
[root@rhel7v2 ~]# keystone service-create --name swift --type object-store --description "Swift Storage Service"
[root@rhel7v2 ~]# keystone endpoint-create --service-id ff942a7bffe0438aa16fb9266debd277 --publicurl "http://192.168.4.10:8080/v1/AUTH_%(tenant_id)s" --adminurl "http://192.168.4.10:8080/v1/AUTH_%(tenant_id)s" --internalurl "http://192.168.4.10:8080/v1/AUTH_%(tenant_id)s"

为swift存储节点服务器安装两块额外的硬盘,分区,格式化
[root@rhel7v2 ~]# lsblk
vdb 252:16 0 20G 0 disk
vdc 252:32 0 20G 0 disk
vdd 252:48 0 20G 0 disk
[root@rhel7v2 ~]# parted /dev/vdb
(parted) mktable gpt
(parted) mkpart primary ext4 1M -1
[root@rhel7v2 ~]# parted /dev/vdc
(parted) mktable gpt
(parted) mkpart primary ext4 1M -1
[root@rhel7v2 ~]# mkfs.ext4 /dev/vdb1
[root@rhel7v2 ~]# mkfs.ext4 /dev/vdc1
[root@rhel7v2 ~]# mkdir -pv /srv/node/z{1,2}d1(创建目录)
[root@rhel7v2 ~]# blkid /dev/vdb1(查看uuid)
[root@rhel7v2 ~]# blkid /dev/vdc1
[root@rhel7v2 ~]# vim /etc/fstab(复制uuid,开机自动挂载)
UUID=64945457-38bf-4c2e-b87d-c1d621c733e5 /srv/node/z1d1 ext4 defaults 0 0
UUID=277c033b-eccd-4236-9be0-49d5ecc0b23f /srv/node/z2d1 ext4 defaults 0 0
[root@rhel7v2 node]# mount -a(挂载)
[root@rhel7v2 ~]# chown -R swift:swift /srv/node/(修改权限)
[root@rhel7v2 ~]# crudini --set /etc/swift/swift.conf swift-hash swift_hash_path_prefix $(openssl rand -hex 10)(修改配置文件)
[root@rhel7v2 ~]# crudini --set /etc/swift/swift.conf swift-hash swift_hash_path_suffix $(openssl rand -hex 10)
[root@rhel7v2 ~]# crudini --set /etc/swift/account-server.conf DEFAULT bind_ip 192.168.4.10
[root@rhel7v2 ~]# crudini --set /etc/swift/container-server.conf DEFAULT bind_ip 192.168.4.10
[root@rhel7v2 ~]# crudini --set /etc/swift/object-server.conf DEFAULT bind_ip 192.168.4.10

创建rings
rings确定数据存储子啊集群存储的哪个节点使用swift-ring-builder命令创建ring文件
(12表示分区的数量,2的12次放,2表示副本的份数,1表示数据迁移时间,小时)
[root@rhel7v2 ~]# swift-ring-builder /etc/swift/account.builder create 12 2 1
[root@rhel7v2 ~]# swift-ring-builder /etc/swift/container.builder create 12 2 1
[root@rhel7v2 ~]# swift-ring-builder /etc/swift/object.builder create 12 2 1
[root@rhel7v2 ~]# for i in 1 2; do swift-ring-builder /etc/swift/account.builder add z${i}-192.168.4.10:6002/z${i}d1 100 done
[root@rhel7v2 ~]# for i in 1 2; do swift-ring-builder /etc/swift/container.builder add z${i}-192.168.4.10:6001/z${i}d1 100; done
[root@rhel7v2 ~]# for i in 1 2; do swift-ring-builder /etc/swift/object.builder add z${i}-192.168.4.11:6000/z${i}d1 100; done

生成文件并启动服务
[root@rhel7v2 ~]# swift-ring-builder /etc/swift/container.builder rebalance
[root@rhel7v2 ~]# swift-ring-builder /etc/swift/account.builder rebalance
[root@rhel7v2 ~]# swift-ring-builder /etc/swift/object.builder rebalance
[root@rhel7v2 ~]# systemctl start openstack-swift-account; systemctl enable openstack-swift-account
[root@rhel7v2 ~]# systemctl start openstack-swift-container; systemctl enable openstack-swift-containe
[root@rhel7v2 ~]# systemctl start openstack-swift-object; systemctl enable openstack-swift-object
[root@rhel7v2 ~]# chown -R root:swift /etc/swift/(更改权限)
[root@rhel7v2 ~]# crudini --set /etc/swift/proxy-server.conf filter:authtoken admin_tenant_name services
[root@rhel7v2 ~]# crudini --set /etc/swift/proxy-server.conf filter:authtoken identity_uri http://192.168.4.10:35357
[root@rhel7v2 ~]# crudini --set /etc/swift/proxy-server.conf filter:authtoken admin_user swift
[root@rhel7v2 ~]# crudini --set /etc/swift/proxy-server.conf filter:authtoken admin_password 123456
[root@rhel7v2 ~]# systemctl start memcached;systemctl enable memcached
[root@rhel7v2 ~]# systemctl start openstack-swift-proxy; systemctl enable openstack-swift-proxy

————————————————————————————————————————————————————————————————

cinder介绍
openstack从foleom开始使用cinder替换原来的nova-volume服务
为openstack云平台提供块存储,cinder为虚拟机提供了持久块存储

安装配置cinder
[root@rhel7v2 ~]# yum -y install openstack-cinder
[root@rhel7v2 ~]# cp /usr/share/cinder/cinder-dist.conf /etc/cinder/cinder.conf(复制配置文件)
[root@rhel7v2 ~]# openstack-db --init --service cinder --password 123456 --rootpw 123456
[root@rhel7v2 ~]# keystone user-create --name cinder --pass 123456
[root@rhel7v2 ~]# keystone role-create --name services
[root@rhel7v2 ~]# keystone user-role-add --user cinder --role admin --tenant services
[root@rhel7v2 ~]# keystone service-create --name=cinder --type=volume --description "OpenStack Block Storage Service"
[root@rhel7v2 ~]# keystone endpoint-create --service-id 68cb05a87bd24ff1b33b1187ffaeb497 --publicurl 'http://192.168.4.10:8776/v1/%(tenant_id)s' --adminurl 'http://192.168.4.10:8776/v1/%(tenant_id)s' --internalurl 'http://192.168.4.10:8776/v1/%(tenant_id)s'
[root@rhel7v2 ~]# keystone service-create --name=cinderv2 --type=volumev2 --description "Cinder Volume Service V2"
[root@rhel7v2 ~]# keystone endpoint-create --service-id f31adfd06ffe4733b2f3d3a5175f42ff --publicurl 'http://192.168.4.10:8776/v2/%(tenant_id)s' --adminurl 'http://192.168.4.10:8776/v2/%(tenant_id)s' --internalurl 'http://192.168.4.10:8776/v2/%(tenant_id)s'

修改配置文件
[root@rhel7v2 ~]# crudini --set /etc/cinder/cinder.conf keystone_authtoken admin_tenant_name services
[root@rhel7v2 ~]# crudini --set /etc/cinder/cinder.conf keystone_authtoken admin_user cinder
[root@rhel7v2 ~]# crudini --set /etc/cinder/cinder.conf keystone_authtoken admin_password 123456
[root@rhel7v2 ~]# crudini --set /etc/cinder/cinder.conf DEFAULT rabbit_userid rabbitmqauth
[root@rhel7v2 ~]# crudini --set /etc/cinder/cinder.conf DEFAULT rabbit_host 192.168.4.10
[root@rhel7v2 ~]# crudini --set /etc/cinder/cinder.conf DEFAULT rabbit_use_ssl True
[root@rhel7v2 ~]# crudini --set /etc/cinder/cinder.conf DEFAULT rabbit_port 5671

创建一个cinder-volumes的vg
[root@rhel7v2 ~]# pvcreate /dev/vdd(把磁盘组合为卷组)
[root@rhel7v2 ~]# vgcreate cinder-volumes /dev/vdd(改名)
起服务
[root@rhel7v2 ~]# systemctl enable openstack-cinder-api
[root@rhel7v2 ~]# systemctl enable openstack-cinder-scheduler
[root@rhel7v2 ~]# systemctl enable openstack-cinder-volume
[root@rhel7v2 ~]# openstack-service start cinder
[root@rhel7v2 ~]# openstack-status
[root@rhel7v2 ~]# cinder create --display-name vol1 2

————————————————————————————————————————————————————————————————————————————————————

linux云计算(keystone swift cinder配置)的更多相关文章

  1. linux云计算面试知识汇总,文件共享--vsftpd秘籍

    随着天气的升温快要步入夏天,紧随着面试季来喽,想知道Linux运维面试时都会被问到哪些问题吗?特整理出这些资料给大家参考学习,据说知道全部答案的人,月薪能过万,还不快快码下,以备后用! 今天小编将继续 ...

  2. Linux(Ubuntu)安装Swift和Swiftlint

    很多时候iOS开发完毕需要接入CI中,而很多CI是基于Linux的,需要在Linux平台安装Swift和Swiftlint,下面就是针对这两个软件的安装步骤. Swift安装 环境 系统:Ubuntu ...

  3. Linux 如何查看修改DNS配置

    DNS服务器介绍 DNS是计算机域名系统(Domain Name System 或Domain Name Service) 的缩写,它是由域名解析器和域名服务器组成的.域名服务器是指保存有该网络中所有 ...

  4. Linux FTP的安装与配置

    Linux FTP的安装与配置   ftp安装部分,操作步骤如下: 可以使用yum命令直接安装ftp # yum install vsftpd ftp服务的开启与关闭命令: 开启:# service  ...

  5. Linux中vim的简单配置

    本文主要分享Linux中vim的简单配置 ★配置文件的位置     在目录/etc.下面,有个名为vimrc的文件,这就是系统中公共的vim配置文件,对所有用户都开放.而在每个用户的主目录下,都可以自 ...

  6. Linux:Vmware安装linux虚拟机,桥接方式配置静态IP后重启网卡,提示:Error,some other host already uses address 10.252.252.21...

    问题: Vmware安装linux虚拟机,桥接方式配置静态IP后重启网卡,提示:Error,some other host already uses address 10.252.252.21... ...

  7. Linux 6.5網卡配置

    Linux 6.5 網卡配置 路徑:/etc/sysconfig/network-scripts 1.關閉NetworkManager服務 [root@rhcsasm2 network-scripts ...

  8. 【转】linux 编译安装nginx,配置自启动脚本

    linux 编译安装nginx,配置自启动脚本 本文章来给各位同学介绍一篇关于linux 编译安装nginx,配置自启动脚本教程,希望有需要了解的朋友可一起来学习学习哦. 在公司的suse服务器装ng ...

  9. 【转】LINUX 5 常用ftp telnet配置

    LINUX 5 常用ftp telnet配置 一.解决远程登陆乱码问题 目标:在xwindow和其console中使用中文界面,在纯console中使用英文 在/etc/profile最后加上一行 e ...

随机推荐

  1. The man Command

    The man command is used to format and display the man pages. The man pages are a user manual that is ...

  2. 不免费的PacMan

    课程内容介绍: 本套课程适合以下人士: - 免费资料没教会你游戏开发的: - 学了Unity基础不知道怎么用在游戏项目里的: - 想快速开发一款好玩的游戏的: - 想学游戏不知道如何入门的: - 对游 ...

  3. 安装phpredis-master步骤备忘

    下载软件包下载地址: http://pan.baidu.com/s/1i37R8TB 解包 tar -zxvf phpredis-master.tar.gz cd phpredis-master /o ...

  4. 完全总结bash中的条件判断test [ [[ 使用

    在bash脚本编程中,我们经常做一些条件判断, 我们主要用到了三种,test,单中括号,双中括号 经常有看到不同的写法,如: [ $? –eq ] [[ $myvar == “mysql” ]] te ...

  5. 关于metaclass,我原以为我是懂的

    关于Python2.x中metaclass这一黑科技,我原以为我是懂的,只有当被打脸的时候,我才认识到自己too young too simple sometimes native. 为什么之前我认为 ...

  6. Java字节码基础[转]

    原文链接:http://it.deepinmind.com/jvm/2014/05/24/mastering-java-bytecode.html Java是一门设计为运行于虚拟机之上的编程语言,因此 ...

  7. 洛谷 [P1403] 约数研究

    本题的思想很好,正难则反 首先如果暴力枚举每个数的约数个数,一定会超时,那么我们就从约数的角度考虑,题目中问的是1~n的约数个数和,那么我们就枚举约数,看每个约数在1~n中出现过几次. #includ ...

  8. [转载]完全版线段树 by notonlysuccess大牛

    原文出处:http://www.notonlysuccess.com/ (好像现在这个博客已经挂掉了,在网上找到的全部都是转载) 今天在清北学堂听课,听到了一些很令人吃惊的消息.至于这消息具体是啥,等 ...

  9. 学习H5仿制网站时遇到的问题

    学习H5的第二周,开始仿制网站,在本过程中也发现了自己存在的更多问题. 1.TOP块:在制作top中,遇到的第一个问题,一旦top左右的背景色不同该怎样去调整 解决方式:建立两个div取代一个div ...

  10. 剑指offer试题(PHP篇四)

    16.合并两个排序的链表 题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. 时间限制:1秒    空间限制:32768K <?php /*c ...