(三)Opestack Juno for CentOS7 架构安装笔记(swift篇)

1、安装配置swift存储节点

(1)安装swift软件

yum -y install openstack-utils openstack-swift-account openstack-swift-container openstack-swift-object xfsprogs python-keystone

(2)新建硬盘分区,这里其余2块分区一样的

fdisk /dev/sdb
mkfs.xfs /dev/sdb1

(3)建立挂载目录,写进开机启动挂载

mkdir -pv  /srv/node/sd{b,c,d}1
echo "/dev/sdb1 /srv/node/sdb1 xfs noatime,nodiratime,nobarrier,logbufs=8 0 0" >> /etc/fstab
echo "/dev/sdc1 /srv/node/sdc1 xfs noatime,nodiratime,nobarrier,logbufs=8 0 0" >> /etc/fstab
echo "/dev/sdd1 /srv/node/sdd1 xfs noatime,nodiratime,nobarrier,logbufs=8 0 0" >> /etc/fstab

(4)下载并修改/etc/swift/account-server.conf文件

curl -o /etc/swift/account-server.conf   https://raw.githubusercontent.com/openstack/swift/stable/juno/etc/account-server.conf-sample
[DEFAULT]
...
bind_ip = 10.90.2.100
bind_port = 6002
user = swift
swift_dir = /etc/swift
devices = /srv/node
[pipeline:main]
pipeline = healthcheck recon account-server
[filter:recon]
...
recon_cache_path = /var/cache/swift

(5)下载并修改/etc/swift/container-server.conf 文件

curl -o /etc/swift/container-server.conf   https://raw.githubusercontent.com/openstack/swift/stable/juno/etc/container-server.conf-sample
  
[DEFAULT]
...
bind_ip = 10.90.2.100
bind_port = 6001
user = swift
swift_dir = /etc/swift
devices = /srv/node  
[pipeline:main]
pipeline = healthcheck recon container-server
[filter:recon]
...
recon_cache_path = /var/cache/swift

(6)下载并修改/etc/swift/object-server.conf 文件

c

url -o /etc/swift/object-server.conf   https://raw.githubusercontent.com/openstack/swift/stable/juno/etc/object-server.conf-sample  
[DEFAULT]
...
bind_ip = 10.90.2.100
bind_port = 6000
user = swift
swift_dir = /etc/swift
devices = /srv/node
[pipeline:main]
pipeline = healthcheck recon object-server
[filter:recon]
...
recon_cache_path = /var/cache/swift

(7)建立目录添加权限

chown -R swift:swift /srv/node
mkdir -p /var/cache/swift
chown -R swift:swift /var/cache/swift

(8)创建所需ring,通过“swift-ring-builder”命令创建account、container和object所用的ring文件,注意要在/etc/swift目录下执行

cd /etc/swift
swift-ring-builder account.builder create 10 3 1
swift-ring-builder container.builder create 10 3 1
swift-ring-builder object.builder create 10 3 1

上面的命令后面三个参数中,18表示构建一致hash环时其环的大小,即使用2^18大小的环。实际使用中,可以根据节点数规模进行调整,最大为32;3表示为每个对象存储3个副本;最后的1表示多长时间可以移动一次某partiton。

(9)将存储设备关系至ring

在ring文件创建完成后,还需要将每个存储设备添加至每个ring上,而且通常需要以account、container和object的顺序进行。其格式为:

swift-ring-builder account.builder add z<ZONE>-<STORAGE_LOCAL_NET_IP>:6002/<DEVICE> 100

swift-ring-builder container.builder add z<ZONE>-<STORAGE_LOCAL_NET_IP_1>:6001/<DEVICE> 100

swift-ring-builder object.builder add z<ZONE>-<STORAGE_LOCAL_NET_IP_1>:6000/<DEVICE> 100

其中<ZONE>为zone编号,如z1表示第一个zone;<STORAGE_LOCAL_NET_IP>表示存储节点自己的IP地址;<DEVICE>表示对应设备的设备名称或挂载点名称(二者通常相同),如/dev/sdb1设备的挂载点为/srv/node/sdb1时,其<DEVICE>即为sdb1。因此,将sdb1、sdc1和sdd1三个设备添加至ring文件可通过如下命令实现。

swift-ring-builder account.builder add z1-10.90.2.100:6002/sdb1 100
swift-ring-builder container.builder add z1-10.90.2.100:6001/sdb1 100
swift-ring-builder object.builder add z1-10.90.2.100:6000/sdb1 100
swift-ring-builder account.builder add z2-10.90.2.100:6002/sdc1 100
swift-ring-builder container.builder add z2-10.90.2.100:6001/sdc1 100
swift-ring-builder object.builder add z2-10.90.2.100:6000/sdc1 100
swift-ring-builder account.builder add z3-10.90.2.100:6002/sdd1 100
swift-ring-builder container.builder add z3-10.90.2.100:6001/sdd1 100
swift-ring-builder object.builder add z3-10.90.2.100:6000/sdd1 100

(10)查看每个ring文件的内容,验正添加结果:

# swift-ring-builder account.builder
account.builder, build version 3
262144 partitions, 3 replicas, 3 zones, 3 devices, 100.00 balance
The minimum number of hours before a partition can be reassigned is 1
Devices:    id  zone     ip address  port      name weight partitions balance meta
             0     1    10.90.2.100  6002      sdb1 100.00          0 -100.00 
             1     2    10.90.2.100  6002      sdc1 100.00          0 -100.00 
             2     3    10.90.2.100  6002      sdd1 100.00          0 -100.00
# swift-ring-builder container.builder
container.builder, build version 3
262144 partitions, 3 replicas, 3 zones, 3 devices, 100.00 balance
The minimum number of hours before a partition can be reassigned is 1
Devices:    id  zone     ip address  port      name weight partitions balance meta
             0     1    10.90.2.100  6001      sdb1 100.00          0 -100.00 
             1     2    10.90.2.100  6001      sdc1 100.00          0 -100.00 
             2     3    10.90.2.100  6001      sdd1 100.00          0 -100.00 
# swift-ring-builder object.builder
object.builder, build version 3
262144 partitions, 3 replicas, 3 zones, 3 devices, 100.00 balance
The minimum number of hours before a partition can be reassigned is 1
Devices:    id  zone     ip address  port      name weight partitions balance meta
             0     1    10.90.2.100  6000      sdb1 100.00          0 -100.00 
             1     2    10.90.2.100  6000      sdc1 100.00          0 -100.00 
             2     3    10.90.2.100  6000      sdd1 100.00          0 -100.00

(11)使用如下命令重新平衡三个环,即将对应的设备分布式环中的节点上。不过,执行这些命令可能会需要一些时间。

swift-ring-builder account.builder rebalance
swift-ring-builder container.builder rebalance
swift-ring-builder object.builder rebalance

(12)复制 account.ring.gz、container.ring.gz 和 object.ring.gz 文件到每个存储节点和其他运行了代理服务的额外节点的 /etc/swift 目录下

确保每个节点的/etc/swift目录及其内部子目录和文件的属主为swift用户,属组为swift组。

chown -R swift:swift /etc/swift

(13)配置hash和默认的存储策略

#curl -o /etc/swift/swift.conf   https://raw.githubusercontent.com/openstack/swift/stable/juno/etc/swift.conf-sample

#openssl rand -hex 10
89e49ff5a001520f4150

[swift-hash]
...
swift_hash_path_suffix = 89e49ff5a001520f4150
swift_hash_path_prefix = 89e49ff5a001520f4150
[storage-policy:0]
...
name = Policy-0
default = yes

(14)复制 swift.conf 文件到每个存储节点和其他运行了代理服务的额外节点的 /etc/swift 目录下,在所有节点上,确认配置文件目录是否有合适的所有权:

scp /etc/swift/*.gz 10.90.2.1:/etc/swift
ssh 10.90.2.1 "chown -R swift:swift"

(15)在存储节点上,启动对象存储服务,并将其设置为随系统启动:

systemctl enable openstack-swift-account.service openstack-swift-account-auditor.service   openstack-swift-account-reaper.service openstack-swift-account-replicator.service
systemctl enable openstack-swift-container.service openstack-swift-container-auditor.service   openstack-swift-container-replicator.service openstack-swift-container-updater.service
systemctl enable openstack-swift-object.service openstack-swift-object-auditor.service   openstack-swift-object-replicator.service openstack-swift-object-updater.service  
  
systemctl status openstack-swift-account.service openstack-swift-account-auditor.service   openstack-swift-account-reaper.service openstack-swift-account-replicator.service
systemctl status openstack-swift-container.service openstack-swift-container-auditor.service   openstack-swift-container-replicator.service openstack-swift-container-updater.service
systemctl status openstack-swift-object.service openstack-swift-object-auditor.service   openstack-swift-object-replicator.service openstack-swift-object-updater.service

2、安装配置proxy_swift代理节点,在控制节点

(1)安装proxy基本软件

yum -y install openstack-swift-proxy memcached python-keystone openstack-utils python-keystoneclient

(2)启动memcached服务,开机自起(这个如果控制节点装了就不需要在执行了)

systemctl start memcached 
systemctl enable memcached

(3)修改配置swift-proxy配置文件/etc/swift/proxy-server.conf

curl -o /etc/swift/proxy-server.conf   https://raw.githubusercontent.com/openstack/swift/stable/juno/etc/proxy-server.conf-sample
  
[DEFAULT]
...
bind_port = 8080
user = swift
swift_dir = /etc/swift
[pipeline:main]
pipeline = authtoken cache healthcheck  proxy-logging proxy-server keystoneauth(注意这个keystoneauth有问题可以不需要填写)
[app:proxy-server]
...
allow_account_management = true
account_autocreate = true
[filter:keystoneauth]
use = egg:swift#keystoneauth
...
operator_roles = admin,_member_
  
[filter:cache]
...
memcache_servers = 127.0.0.1:11211
[filter:authtoken]
paste.filter_factory = keystonemiddleware.auth_token:filter_factory
...
auth_host = 10.90.2.1
auth_port = 35357
auth_protocol = http
auth_uri = http://10.90.2.1:5000/
admin_tenant_name = service
admin_user = swift
admin_password = Service

(4)在控制节点和其他运行了代理服务的节点上,启动对象存储代理服务及其依赖服务,并将它们配置为随系统启动

systemctl enable openstack-swift-proxy.service 
systemctl start openstack-swift-proxy.service

(5)swift基本验证

# swift stat
                        Account: AUTH_06536a37d6434cbb85834e6a1d9eb421
                     Containers: 0
                        Objects: 0
                          Bytes: 0
Containers in policy "policy-0": 0
   Objects in policy "policy-0": 0
     Bytes in policy "policy-0": 0
    X-Account-Project-Domain-Id: default
                     Connection: keep-alive
                    X-Timestamp: 1445927026.21389
                     X-Trans-Id: txd6da3be6a251407f8f786-00562f275a
                   Content-Type: text/plain; charset=utf-8
                  Accept-Ranges: bytes

(6)上传文件,查看

#swift upload testfile localfile  
#swift list
testfile

(7)配置glance+swift,修改/etc/glance/glance-api.conf

[DEFAULT]
default_store = swift
swift_store_auth_address=http://10.90.2.1:5000/v2.0/
swift_store_create_container_on_put=True
swift_store_user=service:swift
swift_store_auth_version=2
swift_store_key=Service123
enable_v2_api=True
……
[glance_store]
stores=glance.store.swift.Store

(8)重新启动glance服务:

systemctl restart openstack-glance-api openstack-glance-registry
# glance image-create --name "cirros-3.3.3-x86_64x1" --file cirros-0.3.3-x86_64-disk.img   --disk-format qcow2 --container-format bare --is-public True --progress
[=============================>] 100%
+------------------+--------------------------------------+
| Property         | Value                                |
+------------------+--------------------------------------+
| checksum         | 133eae9fb1c98f45894a4e60d8736619     |
| container_format | bare                                 |
| created_at       | 2015-11-26T02:17:17                  |
| deleted          | False                                |
| deleted_at       | None                                 |
| disk_format      | qcow2                                |
| id               | a6185a87-8291-4053-9ac1-6fb6fe1997f6 |
| is_public        | True                                 |
| min_disk         | 0                                    |
| min_ram          | 0                                    |
| name             | cirros-3.3.3-x86_64x1                |
| owner            | 5cd48f15e3514988870611ab2eeee536     |
| protected        | False                                |
| size             | 13200896                             |
| status           | active                               |
| updated_at       | 2015-11-26T02:17:19                  |
| virtual_size     | None                                 |
+------------------+--------------------------------------+

(9)登录openstack dashboard可以查看刚刚上传的情况:

时间: 2024-08-08 04:53:23

(三)Opestack Juno for CentOS7 架构安装笔记(swift篇)的相关文章

Python学习笔记基础篇——总览

Python初识与简介[开篇] Python学习笔记——基础篇[第一周]——变量与赋值.用户交互.条件判断.循环控制.数据类型.文本操作 Python学习笔记——基础篇[第二周]——解释器.字符串.列表.字典.主文件判断.对象 Python学习笔记——基础篇1[第三周]——set集合 Python学习笔记——基础篇2[第三周]——计数器.有序字典.元组.单(双)向队列.深浅拷贝.函数.装饰器 Python学习笔记——基础篇[第四周]——迭代器&生成器.装饰器.递归.算法.正则表达式 Python

NFC学习笔记——三(在windows操作系统上安装libnfc)

本篇翻译文章: 这篇文章主要是说明如何在windows操作系统上安装.配置和使用libnfc. 一.基本信息 1.操作系统: Windows Vista Home Premium SP 2 2.硬件信息: System: Dell Inspiron 1720 Processor: Intel Core 2 Duo CPU T9300 @ 2.5GHz 2.5GHz System type: 32-bit Operating System 3.所需软件: 在windows操作系统上安装软件需要下列

《大型网站技术架构》读书笔记三:大型网站核心架构要素

一.性能—响应时间决定用户 (1)浏览器端: ①浏览器缓存: ②使用页面压缩: PS:Gzip压缩效率非常高,通常可以达到70%的压缩率,也就是说,如果你的网页有30K,压缩之后就变成了9K左右.想要启用Gzip压缩,提高浏览速度,可以浏览这篇文章:http://www.chinaz.com/web/2012/1017/278682.shtml ③合理布局页面: CSS:把样式表置于顶部:避免使用CSS表达式(expression_r):使用外部JavaScript和CSS:削减JavaScri

Centos7下安装redis实战(单机版以及集群)

一.背景 因项目需要,要引入redis做缓存,就在centos7下亲自安装了一遍redis,刚好趁着这个机会就来把redis的概念以及单机版和集群版redis安装步骤记录下来,在此和大家一起分享. 二.Redis介绍 1.什么是Redis? Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库.它通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止Redis支持的键值数据类型有:字符串类型.散列类型.列表类型.集合类型.有序集合类型. 2.Redis的应用场景:

OpenStack 安装笔记

提起openstack的安装,整个人感觉都不好了,搞了将近一周时间也没能搞定Redhat.CentOS 6.5系统的安装,最后换到CentOS7.0上一次安装成功.为了以后少走弯路,记下自己愚钝的脚步. 第一次安装openstack,拿到的服务器是Redhat6.5的系统,手里还有一张CentOS6.5的系统光盘.开发人都很懒,能用的就用,有问题就一根筋的钻研下去(我不是个好的开发人员,到最后没能有将问题解决),这样就开始不幸的安装历程. 第一个头疼的问题是Redhat上配置yum源,文章上讲配

Oracle 11g 基于CentOS7静默安装教程(无图形界面,远程安装)

一.安装前环境准备 1.  VMware Workstation 10 搭建 CentOS 7 x64位虚拟机,CentOS7操作系统最小化安装,2G内存,20G磁盘空间,1核CPU,已配置好网络IP:192.168.1.30 2.  已下载Oracle 11gLinux安装文件:linux.x64_11gR2_database_1of2.zip和linux.x64_11gR2_database_2of2.zip 3.  通过XmanagerXftp上传到虚拟机/tmp目录中. 二.操作系统准备

Linux内核架构读书笔记 - 2.5.2 数据结构

调度系统各个组建关系如下 激活调度器两种方法:进程睡眠或其他原因放弃CPU,周期性检测 上述两个组件统称为通用调度器或核心调度器. 调度器用于判断接下来运行那个进程,内核支持不同的调度策略( 完全公平调度 实时调度 无事可做的空闲调度进程) 调度器被调用时候 需要执行体系相关的进程上下文切换 每个进程属于某个调度器类,各个调度器负责管理所属进程,通用调度器不涉及进程管理,都由调度器来 下面分别讲述: task_struct 成员 sched.h 1 struct task_struct { 2

Python MySQLdb Linux下安装笔记

本文介绍了Python MySQLdb Linux下安装笔记,本文分别讲解了快速安装和手动编译安装两种方法,并分别讲解了操作步骤,需要的朋友可以参考下 主要针对centos6.5 64位系统 默认python版本为2.6 编码安装python2.7和python3.4      一.yum快速安装 yum install MySQL-python yum install python-setuptools 经常接触Python的同学可能会注意到,当需要安装第三方python包时,可能会用到eas

CentOS-7下安装MySQL5.6.22

CentOS7下安装MySQL5.6.22(当前最新版本:2015-01-17) 转载请注明出处:jiq?钦's technical Blog 一  安装环境 (1)CentOS版本:CentOS-7 查看方法: [[email protected] 桌面]# cat /etc/redhat-release CentOS Linux release 7.0.1406 (Core) 来源:官网下载 下载地址:http://www.centos.org/ (2)MySQL版本:MySQL-5.6.2