设为首页 收藏本站
查看: 1778|回复: 0

[经验分享] 10.OpenStack块存储服务

[复制链接]

尚未签到

发表于 2017-6-26 17:20:01 | 显示全部楼层 |阅读模式
添加块存储服务

安装和配置控制器节点

创建数据库




mysql -uroot -ptoyo123
CREATE DATABASE cinder;
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' \
IDENTIFIED BY 'toyo123';
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' \
IDENTIFIED BY 'toyo123';
exit
创建服务凭据



source admin-openrc.sh
keystone user-create --name cinder --pass Abcd1234
keystone user-role-add --user cinder --tenant service --role admin
keystone service-create --name cinder --type volume \
--description "OpenStack Block Storage"
keystone service-create --name cinderv2 --type volumev2 \
--description "OpenStack Block Storage"
keystone endpoint-create \
--service-id $(keystone service-list | awk '/ volume / {print $2}') \
--publicurl http://controller:8776/v1/%\(tenant_id\)s \
--internalurl http://controller:8776/v1/%\(tenant_id\)s \
--adminurl http://controller:8776/v1/%\(tenant_id\)s \
--region regionOne
keystone endpoint-create \
--service-id $(keystone service-list | awk '/ volumev2 / {print $2}') \
--publicurl http://controller:8776/v2/%\(tenant_id\)s \
--internalurl http://controller:8776/v2/%\(tenant_id\)s \
--adminurl http://controller:8776/v2/%\(tenant_id\)s \
--region regionOne
安装和配置块存储控制器组件



yum install -y openstack-cinder python-cinderclient python-oslo-db
编辑/etc/cinder/cinder.conf



mv /etc/cinder/cinder.conf /etc/cinder/cinder.conf_bak
vim /etc/cinder/cinder.conf
[database]
connection = mysql://cinder:toyo123@controller/cinder

[DEFAULT]
my_ip = 192.168.116.8
rpc_backend = rabbit
rabbit_host = controller
rabbit_password = Abcd1234
auth_strategy = keystone
verbose = True
[keystone_authtoken]
auth_uri = http://controller:5000/v2.0

identity_uri = http://controller:35357

admin_tenant_name = service
admin_user = cinder
admin_password = Abcd1234
完成安装



su -s /bin/sh -c "cinder-manage db sync" cinder
systemctl enable openstack-cinder-api.service openstack-cinder-scheduler.service
systemctl start openstack-cinder-api.service openstack-cinder-scheduler.service
安装和配置存储节点
     安装LVM与启动lvm并设置为开机自启动



yum -y install lvm2
systemctl enable lvm2-lvmetad.service
systemctl start lvm2-lvmetad.service
   
磁盘分区



fdisk /dev/sda
n
p
Enter
+100G
t
8e
w
检查分区信息是否写入内核(检测到了则不用添加)



cat /proc/partitions


major minor  #blocks  name


8        0  488386584 sda
8        1     512000 sda1
8        2  104857600 sda2
8        3    4063232 sda3


partx -a /dev/sda5 /dev/sda


cat /proc/partitions


major minor  #blocks  name


8        0  488386584 sda
8        1     512000 sda1
8        2  104857600 sda2
8        3    4063232 sda3
8        5  104857600 sda5
建立lvm分区



pvcreate /dev/sda5
Physical volume "/dev/sda5" successfully created
vgcreate cinder-volumes /dev/sda5
Volume group "cinder-volumes" successfully created
编辑/etc/lvm/lvm.conf



vim /etc/lvm/lvm.conf
devices {
filter = [ "a/sda/", "r/.*/"]
安装和配置块存储卷组件



yum install -y openstack-cinder targetcli python-oslo-db MySQL-python
编辑/etc/cinder/cinder.conf



mv /etc/cinder/cinder.conf /etc/cinder/cinder.conf_bak
vim /etc/cinder/cinder.conf


[database]
connection = mysql://cinder:toyo123@controller/cinder

[DEFAULT]
rpc_backend = rabbit
rabbit_host = controller
rabbit_password = Abcd1234
uth_strategy = keystone
my_ip = 192.168.116.8
glance_host = controller
iscsi_helper = lioadm
verbose = True
[keystone_authtoken]
auth_uri = http://controller:5000/v2.0

identity_uri = http://controller:35357

admin_tenant_name = service
admin_user = cinder
admin_password = Abcd1234
完成安装



systemctl enable openstack-cinder-volume.service target.service
systemctl start openstack-cinder-volume.service target.service
验证



source admin-openrc.sh
cinder service-list
创建云磁盘



source demo-openrc.sh
cinder create --display-name demo-volume1 1
cinder list
安装对象存储
  安装和配置控制节点
     创建身份服务凭据



source admin-openrc.sh
keystone user-create --name swift --pass Abcd1234
keystone user-role-add --user swift --tenant service --role admin
keystone service-create --name swift --type object-store \
--description "OpenStack Object Storage"
keystone endpoint-create \
--service-id $(keystone service-list | awk '/ object-store / {print $2}') \
--publicurl 'http://controller:8080/v1/AUTH_%(tenant_id)s' \
--internalurl 'http://controller:8080/v1/AUTH_%(tenant_id)s' \
--adminurl http://controller:8080 \
--region regionOne
安装和配置控制器节点组件



yum install -y openstack-swift-proxy python-swiftclient python-keystone-auth-token \
python-keystonemiddleware memcached

下载并编辑proxy-server.conf



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

vim /etc/swift/proxy-server.conf

[DEFAULT]
bind_port = 8080
user = swift
swift_dir = /etc/swift
[pipeline:main]
pipeline = authtoken cache healthcheck keystoneauth proxy-logging proxy-server
[app:proxy-server]
allow_account_management = true
account_autocreate = true
[filter:keystoneauth]
use = egg:swift#keystoneauth
operator_roles = admin,_member_
[filter:authtoken]
paste.filter_factory = keystonemiddleware.auth_token:filter_factory
auth_uri = http://controller:5000/v2.0

identity_uri = http://controller:35357

admin_tenant_name = service
admin_user = swift
admin_password = Abcd1234
delay_auth_decision = true
[filter:cache]
memcache_servers = 127.0.0.1:11211
安装和配置存储节点

       安装xfsprog



yum install -y xfsprogs rsync
创建分区



fdisk /dev/sda
n
e
ENTER
ENTER
n
ENTER
+100G
N
ENTER
ENTER
W


cat /proc/partitions
partx -a /dev/sda5 /dev/sda
partx -a /dev/sda6 /dev/sda
  格式化并创建挂载点目录



mkfs.xfs /dev/sda5
mkfs.xfs /dev/sda6
mkdir -p /srv/node/sda5
mkdir -p /srv/node/sda6
编辑 /etc/fstab,并挂载



vim  /etc/fstab
/dev/sda5 /srv/node/sda5 xfs noatime,nodiratime,nobarrier,logbufs=8 0 2
/dev/sda6 /srv/node/sda6 xfs noatime,nodiratime,nobarrier,logbufs=8 0 2


mount /srv/node/sda5
mount /srv/node/sda6


编辑/etc/rsyncd.conf



mv /etc/rsyncd.conf /etc/rsyncd.conf_bak
vim /etc/rsyncd.conf


uid = swift
gid = swift
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
address =192.168.116.7
[account]
max connections = 2
path = /srv/node/
read only = false
lock file = /var/lock/account.lock
[container]
max connections = 2
path = /srv/node/
read only = false
lock file = /var/lock/container.lock
[object]
max connections = 2
path = /srv/node/
read only = false
lock file = /var/lock/object.lock

     启动服务并配置为开机自启动



systemctl enable rsyncd.service
systemctl start rsyncd.service

安装和配置存储节点组件



yum install -y openstack-swift-account openstack-swift-container openstack-swift-object
下载配置文件



curl -o /etc/swift/account-server.conf \
https://raw.githubusercontent.com/openstack/swift/stable/juno/etc/account-server.conf-sample
curl -o /etc/swift/container-server.conf \
https://raw.githubusercontent.com/openstack/swift/stable/juno/etc/container-server.conf-sample
curl -o /etc/swift/object-server.conf \
https://raw.githubusercontent.com/openstack/swift/stable/juno/etc/object-server.conf-sample


编辑/etc/swift/account-server.conf



vim /etc/swift/account-server.conf
[DEFAULT]
bind_ip = 192.168.116.7
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
编辑/etc/swift/container-server.conf



vim /etc/swift/container-server.conf
[DEFAULT]
bind_ip = 192.168.116.7
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
编辑/etc/swift/object-server.conf



vim /etc/swift/object-server.conf
[DEFAULT]
bind_ip = 192.168.116.7
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
确保挂载点的目录拥有所有权,创建侦察目录,并确保它的正确的所有权



chown -R swift:swift /srv/node
mkdir -p /var/cache/swift
chown -R swift:swift /var/cache/swift
创建账户环



cd /etc/swift
swift-ring-builder account.builder create 10 3 1
swift-ring-builder account.builder \
add r1z1-192.168.116.7:6002/sda5 100
swift-ring-builder account.builder \
add r1z1-192.168.116.7:6002/sda6 100
swift-ring-builder account.builder \
add r1z1-192.168.116.10:6002/sda5 100
swift-ring-builder account.builder \
add r1z1-192.168.116.10:6002/sda6 100
平衡环



swift-ring-builder account.builder rebalance
验证



swift-ring-builder account.builder
创建容器环



cd /etc/swift
swift-ring-builder container.builder create 10 3 1
swift-ring-builder container.builder \
add r1z1-192.168.116.7:6001/sda5 100
swift-ring-builder container.builder \
add r1z1-192.168.116.7:6001/sda6 100
swift-ring-builder container.builder \
add r1z1-192.168.116.10:6001/sda5 100
swift-ring-builder container.builder \
add r1z1-192.168.116.10:6001/sda6 100
创建环对象



cd /etc/swift
swift-ring-builder object.builder create 10 3 1
swift-ring-builder object.builder \
add r1z1-192.168.116.7:6000/sda5 100
swift-ring-builder object.builder \
add r1z1-192.168.116.7:6000/sda6 100
swift-ring-builder object.builder \
add r1z1-192.168.116.10:6000/sda5 100
swift-ring-builder object.builder \
add r1z1-192.168.116.10:6000/sda6 100

平衡环



swift-ring-builder object.builder rebalance
验证



swift-ring-builder object.builder
将account.ring.gz, container.ring.gz, 和 object.ring.gz复制到节点存储服务器/etc/swift下

下载并编辑swift.conf,编辑完成后复制到每个存储节点与代理服务器上



curl -o /etc/swift/swift.conf \
https://raw.githubusercontent.com/openstack/swift/stable/juno/etc/swift.conf-sample
vim /etc/swift/swift.conf
[swift-hash]
swift_hash_path_prefix = xrfuniounenqjnw
swift_hash_path_suffix = fLIbertYgibbitZ
[storage-policy:0]
name = Policy-0
default = yes
修改目录拥有者并启动服务与配置开机自启动,每个存储节点与代理服务器一样操作



chown -R swift:swift /etc/swift
systemctl enable openstack-swift-proxy.service memcached.service
systemctl restart openstack-swift-proxy.service memcached.service
在存储节点,启动对象存储服务,并将其配置为开机自启动



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
swift-init all start
验证



source demo-openrc.sh
swift stat
Account: AUTH_2e6cfee73a0e42e3ad67affb9f042484
Containers: 0
Objects: 0
Bytes: 0
X-Put-Timestamp: 1431246736.74462
X-Timestamp: 1431246736.74462
X-Trans-Id: tx99c4c6fa0ade4314aec8d-00554f1790
Content-Type: text/plain; charset=utf-8

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-388282-1-1.html 上篇帖子: OpenStack中的metadata server 下篇帖子: Openstack HA架构
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表