python-netifaces python-setuptools python-eventlet python-pastedeploy python-xattr xfsprogs以上軟件包可以直接使用apt-get install來安裝。一個比較特殊的包:python-webob。該包在ubuntu軟件源中的版本是1.1.1(ubuntu12.04).而這個版本有個bug,會導致swift client使用HEAD無法正常的獲取content-length。比如,獲取文件尺寸,得到的結果永遠是 13。解決方法是在ubuntu軟件包網站下載1.0.8版本的deb安裝包,然後手工安裝。安裝包我已經下載,見附件。
mkfs.xfs -i size=1024 /dev/sda5在/etc/fstab中添加
/dev/sda5 /srv/node/sda5 xfs noatime,nodiratime,nobarrier,logbufs=8 0 0掛載磁盤分區
sudo mount /srv/node/sda5
swift-ring-builder account.builder create 18 3 118: 用於指定分區數。分區數目為2的冪次,如18,則分區數是2的18次方。 3:文件副本數目 1:分區移動的最小時間間隔,單位是小時。
swift-ring-builder account.builder add z1-192.168.1.11:6002/sda5 100 swift-ring-builder account.builder add z2-192.168.1.12:6002/sda5 100 swift-ring-builder account.builder add z3-192.168.1.13:6002/sda5 100 swift-ring-builder account.builder add z4-192.168.1.14:6002/sda5 100100 代表設備的權重。可以根據磁盤的容量設定對應值,比如2T的100,則1T的可以是50。 swift-ring-builder account.builder可以檢測配置,確認無誤後,使用swift-ring-builder account.builder rebalance重新平衡。成功之後會在當前目錄生成 account.ring.gz 文件。 使用同樣的方式構建 container和object的ring。container服務端口是6001,object的服務端口是6000。特別需要注意的是:一旦ring投入使用,更改配置的時候要針對該ring,不能重新構建,否則,很多數據可能會404. 最後將生成的account.ring.gz,container.ring.gz,object.ring.gz分發至各個節點的/etc/swift目錄。