OpenStack安裝(五)-Swift模塊

一、安裝和配置對(duì)象存儲(chǔ)服務(wù)Swift

在控制節(jié)點(diǎn)完成

1. 創(chuàng)建Swift的身份認(rèn)證證書(shū)

  1. 加載admin客戶端腳本:source admin-openrc.sh
  2. 創(chuàng)建swift用戶:openstack user create --password-prompt swift
  3. 將admin角色添加給swift用戶:openstack role add --project service --user swift admin

2. 創(chuàng)建Swift的服務(wù)實(shí)體

  1. 創(chuàng)建swift的服務(wù)實(shí)體:
    openstack service create --name swift --description "OpenStack Object Storage" object-store

3. 創(chuàng)建Swift的API端點(diǎn)

  1. 創(chuàng)建swift的API endpoint:
    openstack endpoint create --publicurl 'http://controller:8080/v1/AUTH_%(tenant_id)s' --internalurl 'http://controller:8080/v1/AUTH_%(tenant_id)s' --adminurl 'http://controller:8080' --region RegionOne object-store

二、在控制節(jié)點(diǎn)上安裝和配置Swift

1. 安裝Swift

  1. 安裝Swift:
    apt-get install swift swift-proxy python-swiftclient python-keystoneclient python-keystonemiddleware memcached

2. 配置Swift

  1. 創(chuàng)建/etc/swift目錄:mkdir /etc/swift
  2. 進(jìn)入該目錄:cd /etc/swift
  3. 從對(duì)象存儲(chǔ)服務(wù)源庫(kù)獲取代理服務(wù)配置文件:
    curl -o /etc/swift/proxy-server.conf https://git.openstack.org/cgit/openstack/swift/plain/etc/proxy-server.conf-sample?h=stable/kilo
  4. 編輯文件:/etc/swift/proxy-server.conf
  5. 修改[DEFAULT]部分,配置綁定端口,用戶和配置文件存放的路徑:
    bind_port = 8080
    user = swift
    swift_dir = /etc/swift
    
  6. 在[pipeline:main]部分,啟用相應(yīng)的模塊:
    pipeline = catch_errors gatekeeper healthcheck proxy-logging cache container_sync bulk ratelimit authtoken keystoneauth container-quotas account-quotas slo dlo proxy-logging proxy-server
    
  7. 在[app:proxy-server]部分,啟用賬戶自動(dòng)創(chuàng)建的功能:
    account_autocreate = true
    
  8. 在[filter:keystoneauth]部分,配置操作的角色
    use = egg:swift#keystoneauth
    operator_roles = admin,user
    
  9. 在[filter:authtoken]部分,配置身份認(rèn)證服務(wù)的訪問(wèn),注意要注釋掉其他的內(nèi)容:
    paste.filter_factory = keystonemiddleware.auth_token:filter_factory
    auth_uri = http://controller:5000
    auth_url = http://controller:35357
    auth_plugin = password
    project_domain_id = default
    user_domain_id = default
    project_name = service
    username = swift
    password = SWIFT_PASS
    delay_auth_decision = true
    
  10. 在[filter:cache]部分,配置memcached位置:
    memcache_servers = 127.0.0.1:11211
    

三、在對(duì)象存儲(chǔ)節(jié)點(diǎn)上安裝和配置Swift

1. 配置對(duì)象存儲(chǔ)的操作系統(tǒng)環(huán)境

  1. 配置管理接口:待補(bǔ)充...........................................

  2. 配置主機(jī)名:待補(bǔ)充...........................................

  3. 將兩臺(tái)主機(jī)的/etc/hosts內(nèi)容同步到其他所有節(jié)點(diǎn):

  4. 為兩臺(tái)主機(jī)分別添加新的磁盤(pán),并創(chuàng)建分區(qū):fdisk /dev/sdb fdisk /dev/sdc

  5. 在兩個(gè)節(jié)點(diǎn)上分別安裝工具包:apt-get install xfsprogs rsync

  6. 格式化/dev/sdb1和/dev/sdc1位XFS:mkfs.xfs /dev/sdb1 mkfs.xfs /dev/sdc1

  7. 創(chuàng)建目錄掛載點(diǎn):mkdir -p /srv/node/sdb1 mkdir -p /srv/node/sdc1

  8. 編輯/etc/fstab,添加這兩個(gè)內(nèi)容:
    /dev/sdb1 /srv/node/sdb1 xfs noatime,nodiratime,nobarrier,logbufs=8 0 2
    /dev/sdc1 /srv/node/sdc1 xfs noatime,nodiratime,nobarrier,logbufs=8 0 2

  9. 掛載設(shè)備:mount /srv/node/sdb1 mount /srv/node/sdc1

  10. 編輯/etc/rsyncd.conf,添加如下內(nèi)容:

    uid = swift
    gid = swift
    log file = /var/log/rsyncd.log
    pid file = /var/run/rsyncd.pid
    address = MANAGEMENT_INTERFACE_IP_ADDRESS
    
    [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
    
  11. 編輯/etc/default/rsync文件,,添加下面內(nèi)容,啟用rsync服務(wù):

    RSYNC_ENABLE=true
    
  12. 啟動(dòng)rsync服務(wù):service rsync start

2. 安裝Swift(在兩個(gè)對(duì)象存儲(chǔ)節(jié)點(diǎn)上安裝)

  1. 安裝Swift:apt-get install swift swift-account swift-container swift-object

3. 獲取Swift的配置文件

  1. 獲取accounting, container, object, container-reconciler和object-expirer service服務(wù)的配置文件
    curl -o /etc/swift/account-server.conf https://git.openstack.org/cgit/openstack/swift/plain/etc/account-server.conf-sample?h=stable/kilo
    curl -o /etc/swift/container-server.conf https://git.openstack.org/cgit/openstack/swift/plain/etc/container-server.conf-sample?h=stable/kilo
    curl -o /etc/swift/object-expirer.conf https://git.openstack.org/cgit/openstack/swift/plain/etc/object-expirer.conf-sample?h=stable/kilo
    curl -o /etc/swift/object-expirer.conf https://git.openstack.org/cgit/openstack/swift/plain/etc/object-expirer.conf-sample?h=stable/kilo
    curl -o /etc/swift/object-expirer.conf https://git.openstack.org/cgit/openstack/swift/plain/etc/object-expirer.conf-sample?h=stable/kilo

  2. 編輯配置文件/etc/swift/account-server.conf:
    在[DEFAULT]部分,配置綁定ip地址,端口,用戶,配置文件路徑,和掛載點(diǎn)的路徑:

    bind_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
    bind_port = 6002
    user = swift
    swift_dir = /etc/swift
    devices = /srv/node
    

    在[pipeline:main]部分,啟用appropriate模塊:

    pipeline = healthcheck recon account-server
    

    在[filter:recon]部分,配置緩存目錄:

    recon_cache_path = /var/cache/swift
    
  3. 編輯配置文件/etc/swift/container-server.conf:
    在[DEFAULT]部分,配置綁定ip地址,端口,用戶,配置文件路徑,和掛載點(diǎn)的路徑:

    bind_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
    bind_port = 6001
    user = swift
    swift_dir = /etc/swift
    devices = /srv/node
    

    在[pipeline:main]部分,啟用appropriate模塊:

    pipeline = healthcheck recon container-server
    

    在[filter:recon]部分,配置緩存目錄:

    recon_cache_path = /var/cache/swift
    
  4. 編輯配置文件/etc/swift/object-server.conf:
    在[DEFAULT]部分,配置綁定ip地址,端口,用戶,配置文件路徑,和掛載點(diǎn)的路徑:

    bind_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
    bind_port = 6001
    user = swift
    swift_dir = /etc/swift
    devices = /srv/node
    

    在[pipeline:main]部分,啟用appropriate模塊:

    pipeline = healthcheck recon object-server
    

    在[filter:recon]部分,配置緩存目錄和lock目錄:

    recon_cache_path = /var/cache/swift
    recon_lock_path = /var/lock
    
  5. 修改掛載點(diǎn)的權(quán)限:chown -R swift:swift /srv/node

  6. 創(chuàng)建recon目錄,并修改目錄權(quán)限:mkdir -p /var/cache/swift chown -R swift:swift /var/cache/swift

四、創(chuàng)建初始的rings

1. 創(chuàng)建Account ring(在控制節(jié)點(diǎn)上)

  1. 進(jìn)入/etc/swift目錄:cd /etc/swift
  2. 創(chuàng)建基本的account.builder文件:swift-ring-builder account.builder create 10 3 1
  3. 添加所有的存儲(chǔ)節(jié)點(diǎn)到ring中:
    swift-ring-builder account.builder add r1z1-10.0.0.51:6002/sdb1 100
    swift-ring-builder account.builder add r1z2-10.0.0.51:6002/sdc1 100
    swift-ring-builder account.builder add r1z3-10.0.0.52:6002/sdb1 100
    swift-ring-builder account.builder add r1z4-10.0.0.52:6002/sdc1 100

2. 校驗(yàn)Account ring

  1. 校驗(yàn)Account ring的內(nèi)容:swift-ring-builder account.builder
  2. 重新分布ring:swift-ring-builder account.builder rebalance

3. 創(chuàng)建Container ring(在控制節(jié)點(diǎn)上)

  1. 進(jìn)入/etc/swift目錄:cd /etc/swift
  2. 創(chuàng)建基本的container.builder文件:swift-ring-builder container.builder create 10 3 1
  3. 添加所有的存儲(chǔ)節(jié)點(diǎn)到ring中:
    swift-ring-builder container.builder add r1z1-10.0.0.51:6001/sdb1 100
    swift-ring-builder container.builder add r1z2-10.0.0.51:6001/sdc1 100
    swift-ring-builder container.builder add r1z3-10.0.0.52:6001/sdb1 100
    swift-ring-builder container.builder add r1z4-10.0.0.52:6001/sdc1 100

4. 校驗(yàn)Container ring

  1. 校驗(yàn)Container ring的內(nèi)容:swift-ring-builder container.builder
  2. 重新分布ring:swift-ring-builder container.builder rebalance

5. 創(chuàng)建Object ring(在控制節(jié)點(diǎn)上)

  1. 進(jìn)入/etc/swift目錄:cd /etc/swift
  2. 創(chuàng)建基本的object.builder文件:swift-ring-builder object.builder create 10 3 1
  3. 添加所有的存儲(chǔ)節(jié)點(diǎn)到ring中:
    swift-ring-builder object.builder add r1z1-10.0.0.51:6000/sdb1 100
    swift-ring-builder object.builder add r1z2-10.0.0.51:6000/sdc1 100
    swift-ring-builder object.builder add r1z3-10.0.0.52:6000/sdb1 100
    swift-ring-builder object.builder add r1z4-10.0.0.52:6000/sdc1 100

6. 校驗(yàn)Object ring

  1. 校驗(yàn)Object ring的內(nèi)容:swift-ring-builder object.builder
  2. 重新分布ring:swift-ring-builder object.builder rebalance

7. 分發(fā)配置文件

如果有其他的對(duì)象存儲(chǔ)節(jié)點(diǎn),請(qǐng)將account.ring.gz, container.ring.gz和object.ring.gz三個(gè)文件拷貝到其他節(jié)點(diǎn)的/etc/swift目錄

8. 完成安裝

  1. 從對(duì)象存儲(chǔ)資源庫(kù)中獲取/etc/swift/swift.conf文件:
    curl -o /etc/swift/swift.conf https://git.openstack.org/cgit/openstack/swift/plain/etc/swift.conf-sample?h=stable/kilo

  2. 編輯/etc/swift/swift.conf文件:
    在[swift-hash]部分,為環(huán)境配置哈希路徑的前綴和后綴:

    swift_hash_path_suffix = HASH_PATH_PREFIX(改成唯一值)
    swift_hash_path_prefix = HASH_PATH_SUFFIX(改成唯一值)
    

    在[storage-policy:0] 部分,配置默認(rèn)存儲(chǔ)策略:

    name = Policy-0
    default = yes
    
  3. 復(fù)制文件swift.conf到每個(gè)存儲(chǔ)節(jié)點(diǎn)響應(yīng)的/etc/swift目錄下:

    scp swift.conf  aboutyun@10.0.0.51:~/
    scp swift.conf  aboutyun@10.0.0.52:~/
    
    sudo cp swift.conf /etc/swift
    
  4. 在所有的存儲(chǔ)節(jié)點(diǎn)上,設(shè)置目錄的權(quán)限:chown -R swift:swift /etc/swift

  5. 在控制節(jié)點(diǎn)和其他存儲(chǔ)節(jié)點(diǎn)上重啟服務(wù):service memcached restart service swift-proxy restart

  6. 在所有的存儲(chǔ)節(jié)點(diǎn)上重啟服務(wù):swift-init all start

五、校驗(yàn)Swift的安裝(在控制節(jié)點(diǎn)上)

  1. 檢查對(duì)象存儲(chǔ)服務(wù)啟動(dòng)的服務(wù)組件:swift -V 3 stat
  2. 上傳一個(gè)測(cè)試文件:swift -V 3 upload demo-container1 FILE
  3. 查看容器:swift -V 3 list
  4. 下載測(cè)試文件:swift -V 3 download demo-container1 FILE
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 主控節(jié)點(diǎn)安裝配置 Keystone 認(rèn)證服務(wù) 主控節(jié)點(diǎn) IP:192.168.1.101 vim /etc/m...
    煙熏的皮囊閱讀 1,955評(píng)論 0 51
  • 操作系統(tǒng):Ubuntu 14.04.3 LTS 安裝依賴 為存儲(chǔ)創(chuàng)建分區(qū)使用loopback設(shè)備作為存儲(chǔ) 編輯分區(qū)...
    stepyu閱讀 1,460評(píng)論 2 1
  • 第一章 OpenStack基礎(chǔ) OpenStack管理的資源及提供的服務(wù)OpenStack做為一個(gè)操作系統(tǒng),...
    sgt_tiger閱讀 13,031評(píng)論 4 72
  • Nova Nova,即計(jì)算服務(wù),是OpenStack計(jì)算的彈性控制器。Nova可以說(shuō)是整個(gè)云平臺(tái)最重要的組件,Op...
    邵勝奧閱讀 4,211評(píng)論 0 8
  • 真正的愛(ài),是包容和信任,是體貼和照顧,是不計(jì)代價(jià)地付出,是在伴侶的情緒陷入低谷時(shí),盡可能陪伴左右,給他(她)足夠的...
    一只倒霉兔閱讀 190評(píng)論 0 0