真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

部署對(duì)象存儲(chǔ)服務(wù)(swift)

此文章是看Red Hat 的文章進(jìn)行了一下簡單的翻譯,有很多地方不多的,請(qǐng)多多指教!

成都創(chuàng)新互聯(lián)于2013年開始,先為鹽都等服務(wù)建站,鹽都等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為鹽都企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

原文地址:https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux_OpenStack_Platform/2/html/Getting_Started_Guide/ch08s05.html

  1. 創(chuàng)建swift ring 文件;

  2. 配置keystone認(rèn)證;

  3. 配置swift proxy 代理;

  4. 配置swift stroage nodes 存儲(chǔ)節(jié)點(diǎn)

  5. 測試swift

1個(gè)swift proxy 節(jié)點(diǎn)

6個(gè)swift storage 節(jié)點(diǎn)包括(accounts, objects, container)

3個(gè)zone區(qū)域


每份數(shù)據(jù)復(fù)制3份,也就是一份數(shù)據(jù)保存到3個(gè)swift stroage節(jié)點(diǎn),作為存儲(chǔ)對(duì)象的一個(gè)副本;


第一步先安裝swift軟件包;

$ sudo yum install -y openstack-swift openstack-swift-proxy \openstack-swift-account openstack-swift-container openstack-swift-object \openstack-utils memcached python-keystone

創(chuàng)建swift ring 文件

需要?jiǎng)?chuàng)建三個(gè)ring文件包含所有的存儲(chǔ)設(shè)備細(xì)節(jié),這些都是用來推斷一個(gè)特定的數(shù)據(jù)存儲(chǔ)。

在這個(gè)列子中創(chuàng)建part power 為12,那么ring分區(qū)就可以達(dá)到4096個(gè),具體的分區(qū)大小可根據(jù)你的生產(chǎn)環(huán)境來分配;

2**12=4096

2**18=262144

更多的信息請(qǐng)查看:http://docs.openstack.org/developer/swift/deployment_guide.html(這個(gè)是官方的文檔)

本文主要介紹swift的安裝和部署,假設(shè)keystone的部署和配置一完成,并已配置好authentication認(rèn)證用戶文件keystone_admin

$ source ~/keystonerc_admin
$ sudo swift-ring-builder /etc/swift/account.builder create 12 3 1
$ sudo swift-ring-builder /etc/swift/container.builder create 12 3 1
$ sudo swift-ring-builder /etc/swift/object.builder create 12 3 1

#### 12 3 1 解釋:

12就是ring的分區(qū)是2的12次方,

3是保存數(shù)據(jù)為3份,

1是1個(gè)小時(shí)檢測一次ring;

注意:這個(gè)過程中注意端口別搞錯(cuò)了!?。。?br />

一旦創(chuàng)建ring文件存儲(chǔ)設(shè)備需要添加到每個(gè)ring,從賬戶中。使用的IP地址swift對(duì)象存儲(chǔ)服務(wù)器的帳戶標(biāo)識(shí)符

$ sudo swift-ring-builder /etc/swift/account.builder add z1-192.0.43.10:6002/z1d1 100
$ sudo swift-ring-builder /etc/swift/account.builder add z1-192.0.43.10:6002/z1d2 100
$ sudo swift-ring-builder /etc/swift/account.builder add z2-192.0.43.10:6002/z2d1 100
$ sudo swift-ring-builder /etc/swift/account.builder add z2-192.0.43.10:6002/z2d2 100
$ sudo swift-ring-builder /etc/swift/account.builder add z3-192.0.43.10:6002/z3d1 100
$ sudo swift-ring-builder /etc/swift/account.builder add z3-192.0.43.10:6002/z3d2 100

然后是容器(container)

$ sudo swift-ring-builder /etc/swift/object.builder add z1-192.0.43.10:6000/z1d1 100
$ sudo swift-ring-builder /etc/swift/object.builder add z1-192.0.43.10:6000/z1d2 100
$ sudo swift-ring-builder /etc/swift/object.builder add z2-192.0.43.10:6000/z2d1 100
$ sudo swift-ring-builder /etc/swift/object.builder add z2-192.0.43.10:6000/z2d2 100
$ sudo swift-ring-builder /etc/swift/object.builder add z3-192.0.43.10:6000/z3d1 100
$ sudo swift-ring-builder /etc/swift/object.builder add z3-192.0.43.10:6000/z3d2 100

發(fā)送讓整個(gè)ring重新負(fù)載,輸入以下命令

$ sudo swift-ring-builder /etc/swift/account.builder rebalance
$ sudo swift-ring-builder /etc/swift/container.builder rebalance
$ sudo swift-ring-builder /etc/swift/object.builder rebalance

檢查一下你現(xiàn)在有3個(gè)ring文件,在目錄 /etc/swift/,使用以下命令:

$ ls /etc/swift/*gz

應(yīng)該顯示:

/etc/swift/account.ring.gz  /etc/swift/container.ring.gz  /etc/swift/object.ring.gz

確保/etc/swift/目錄中的所有文件包括那些您剛剛創(chuàng)建屬于root用戶和所屬swift組

$ sudo chown -R root:swift /etc/swift

您還需要?jiǎng)?chuàng)建一個(gè)私有hash key 對(duì)于 swift hash 算法

$ sudo openstack-config --set /etc/swift/swift.conf swift-hash \
swift_hash_path_suffix $(openssl rand -hex 10)

2.配置keystone認(rèn)證:

在這個(gè)例子中假設(shè)我們已經(jīng)創(chuàng)建了admin用戶,我們需要?jiǎng)?chuàng)建一個(gè)services的租戶(如果不存在的話),一個(gè)名為swiftand來作為swift用戶和擁有admin角色

通過admin來訪問:

$ source ~/keystonerc_admin

檢查services 租戶

$ keystone tenant-list

如果不存在,創(chuàng)建:

$ keystone tenant-create --name services

創(chuàng)建swift用戶,設(shè)置密碼PASSWORD

$ keystone user-create --name swift --pass PASSWORD

查詢admin角色的uuid

$ keystone role-list | grep admin

如果沒有admin角色,創(chuàng)建

$ keystone role-create --name admin

添加swift用戶到service租戶中,并給予admin角色的權(quán)限;

$ keystone user-role-add --role-id  --tenant-id  --user-id 

創(chuàng)建swift端點(diǎn),在keystone

$ keystone service-list

如果沒有swift endpoint,然后創(chuàng)建;

$ keystone service-create --name swift --type object-store \
    --description "Swift Storage Service"$ keystone endpoint-create --service_id  \
    --publicurl "http://192.0.43.10:8080/v1/AUTH_\$(tenant_id)s" \
    --adminurl "http://192.0.43.10:8080/v1/AUTH_\$(tenant_id)s" \
    --internalurl "http://192.0.43.10:8080/v1/AUTH_\$(tenant_id)s"

確保publicurl、adminurl internalurl參數(shù)包括正確的IP地址swift對(duì)象存儲(chǔ)服務(wù)器。

3,配置swift proxy代理

更新配置文件從swift使用正確的身份驗(yàn)證代理服務(wù)器為適當(dāng)?shù)闹攸c(diǎn)用戶詳細(xì)信息。

$ openstack-config --set /etc/swift/proxy-server.conf \
      filter:authtoken admin_tenant_name services
$ openstack-config --set /etc/swift/proxy-server.conf \
      filter:authtoken admin_user swift
$ openstack-config --set /etc/swift/proxy-server.conf \
      filter:authtoken admin_password PASSWORD

開啟memcached 和openstack-swift-proxy 服務(wù),使用 service 命令;

$ sudo service memcached start
$ sudo service openstack-swift-proxy start

memcached 和openstack-swift-proxy 服務(wù),加入到開機(jī)啟動(dòng)

$ sudo chkconfig memcached on
$ sudo chkconfig openstack-swift-proxy on

運(yùn)行訪問swift proxy server ,添加防火墻規(guī)則在/etc/sysconfig/iptables 配置文件中:

-A INPUT -p tcp -m multiport --dports 8080 -j ACCEPT

這條規(guī)則運(yùn)行從遠(yuǎn)程主機(jī)訪問swift proxy 的8080端口,其它更加安全的信息請(qǐng)參考redhat enterprise 6 security guide.(紅帽企業(yè)6安全指南)

使用service命令重新啟動(dòng)iptables,使剛添加的規(guī)則生效;

$ sudo service iptables restart

4.配置swift storage nodes 存儲(chǔ)節(jié)點(diǎn)

對(duì)象存儲(chǔ)必須支持磁盤存儲(chǔ)卷,提供足夠的備份存儲(chǔ)空間 到目前為止在本文中需要6個(gè)存儲(chǔ)節(jié)點(diǎn)。

如果你有足夠多的資源可用用來安裝此服務(wù),在本文都是安裝在了/srv/node的目錄下

這段不翻譯了!

If you do not have enough physical devices available to support this setup but still wish to test the object storage facilities provided by OpenStack then it is possible to create test devices using the loopback facility. This is not recommended for production environments

創(chuàng)建對(duì)象存儲(chǔ)設(shè)備使用loopback(回環(huán))

這個(gè)列子腳本創(chuàng)建了3個(gè)區(qū)域和2個(gè)設(shè)備支持loopback設(shè)備給每個(gè)區(qū)域,總共6個(gè)設(shè)備,卷鏡像創(chuàng)建在/data目錄下和掛載到/srv/node目錄下使用回環(huán)設(shè)備

每個(gè)設(shè)備是50GB大小,你也許希望這個(gè)數(shù)字低點(diǎn);

這個(gè)腳本需要用root用戶執(zhí)行;

#!/bin/sh
# Device size in GB
SIZE=50
DATA=/data
MOUNT=/srv/node
mkdir ${DATA}
    for ZONE in 1 2 3; do
    for DEVICE in 1 2; do
        truncate ${DATA}/swift-z${ZONE}d${DEVICE} --size ${SIZE}G        
        LOOPDEVICE=`losetup --show -f ${DATA}/swift-z${ZONE}d${DEVICE}`
        mkfs.ext4 -I 1024 ${LOOPDEVICE}
        mkdir -p ${MOUNT}/z${ZONE}d${DEVICE}
        mount -o noatime,nodiratime,nobarrier,user_xattr ${LOOPDEVICE} \              
        ${MOUNT}/z${ZONE}d${DEVICE}
    done
done

這個(gè)例子設(shè)置對(duì)象存儲(chǔ)只是作為一種快速而簡單的方法嘗試持久卷在一個(gè)測試環(huán)境,這種方法不能用于生產(chǎn)環(huán)境。

對(duì)象存儲(chǔ)中創(chuàng)建這種方式并不會(huì)自動(dòng)保存在系統(tǒng)需要重新啟動(dòng)

恢復(fù)對(duì)象存儲(chǔ)從文件創(chuàng)建這個(gè)過程后,必須重新啟動(dòng)

使用losetup創(chuàng)建loopback回環(huán)/data/目錄

使用mount掛載 loopback回環(huán)/srv/node/目錄

使用service命令重啟  openstack-swift-account, openstack-swift-container, and openstack-swift-object 服務(wù)

在生產(chǎn)環(huán)境中推薦,把掛載目錄這些添加到/etc/fstab,并加入到開機(jī)自動(dòng)掛載項(xiàng)中。

Red Hat Enterprise Linux系統(tǒng)默認(rèn)有八個(gè)(8)環(huán)回設(shè)備可供使用

如果您已經(jīng)在使用這些設(shè)備,那么你可能會(huì)遇到的一些運(yùn)行腳本時(shí)返回的消息:

mount: could not find any free loop device

如果在這種情況下運(yùn)行l(wèi)ostetup -a 命令來列出所有l(wèi)oopback設(shè)備的狀態(tài),然后可以使用umount命令來釋放一下設(shè)備,losetup -d命令或改變腳本需要更少的設(shè)備。

sudo chown -R swift:swift /srv/node/

使用restorecon命令確保incron目錄中的所有文件都正確的SELinux安全上下文的定義。

$ sudo restorecon -R /srv

未能正確設(shè)置安全上下文將導(dǎo)致AVC否認(rèn)被記錄時(shí)迅速試圖訪問的數(shù)據(jù)存儲(chǔ)在/ srv /目錄。

啟動(dòng)帳戶,容器和對(duì)象存儲(chǔ)服務(wù):

$ sudo service openstack-swift-account start
$ sudo service openstack-swift-container start
$ sudo service openstack-swift-object start

加入開機(jī)啟動(dòng)

$ sudo chkconfig openstack-swift-account on
$ sudo chkconfig openstack-swift-container on
$ sudo chkconfig openstack-swift-object on

允許傳入的連接向/etc/sysconfig/iptables swift通過添加這個(gè)防火墻規(guī)則配置文件:

-A INPUT -p tcp -m multiport --dports 6000,6001,6002,873 -j ACCEPT

規(guī)則生效,重啟iptables服務(wù)

 sudo service iptables restart

5.測試swift

設(shè)置shell訪問重點(diǎn)作為一個(gè)用戶,管理員或SwiftOperator角色,admin用戶這個(gè)例子所示:

$ source ~/keystonerc_admin
$ swift list
$ head -c 1024 /dev/urandom > data.file ; swift upload c1 data.file
$ head -c 1024 /dev/urandom > data2.file ; swift upload c1 data2.file
$ head -c 1024 /dev/urandom > data3.file ; swift upload c2 data3.file
$ swift list
$ swift list c1
$ swift list c2

現(xiàn)在您已經(jīng)上傳3個(gè)文件到2個(gè)集裝箱。如果你看到在不同的存儲(chǔ)設(shè)備應(yīng)該看到9個(gè)數(shù)據(jù)文件(每個(gè)文件3份):

$ find /srv/node/ -type f -name "*data"


網(wǎng)頁名稱:部署對(duì)象存儲(chǔ)服務(wù)(swift)
當(dāng)前URL:http://weahome.cn/article/gjcdcj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部