next up previous contents
Next: Swift 安裝 Up: 物件儲存 Swift Previous: 物件儲存 Swift   Contents

認識 Swift

  1. Swift 服務提供用戶諸存物件於虛擬容器中。
  2. Swift 支援水平擴展、資料除錯,適用多租用戶配置。
  3. Swift 基本概念
    1. Storage replicas,儲存副本:為保護儲存的物件,每個物件最好設定複製三個以上副本。
    2. Storage zones,儲存區:為確保每個物件副件是分開儲存,一個 zone 代表獨立的硬碟、陣列、主機或整個資料中心。
    3. Storage regions,儲存區域:一組儲存區。
  4. Swift 組件
    1. openstack-swift-proxy,代理服務器:負責將 Swift 架構其餘的部分整合起來。查閱每一個請求位於 ring 上的 account, container, 或者 object,然後對應這個請求的路由。
    2. openstack-swift-object,物件服務器:用來儲存、檢索和刪除儲存在本地設備上的物件。物件以二進制文件的形式儲存在系統上,數據儲存在文件的擴展屬性(xattrs)中,物件服務器的文件系統支持xattrs,一些文件系統,例如 ext3 預設 xattrs 是關閉的。 每個物件使用物件名稱的 hash 值及操作時間組成的路徑來儲存。
    3. openstack-swift-container,容器服務器:物件儲存位置列表。這個列表以 sqlite 資料庫形式儲存。
    4. openstack-swift-account,帳號服務器:與容器服務類似,只是負責列表為容器,而不是物件。
  5. Ring files:包含所有儲存的細節。ring files 產生工具 swift-ring-builder,swift 需要 account, container 和 object 三個 ring files。
  6. Ring files 產生必須有三個參數:
    1. partition power:計算 partition 的數量用,partitions 的數量 = 2 ^ partition power,實作時 partition 的數量設置成磁碟數的 100 倍,會有比較好的效率。例如:預計整個系統不會使用超過 5 個磁碟,partition 數為 500,則設定 partition power 為 9 ( 2^9=512)
    2. replica count:資料在叢集複製的數量,主要是為了除錯。副本數愈大,用來儲存資料的 partitions 就愈少,同一個 partition,不同的副本,存在不同的 zone。預設副本數為 3。
    3. min_part_hours:最小移動間隔。partition 會因某些原因移動數據。為了避免網路擁塞,partition 不會頻繁的移動。預設最小移動間隔為 1 小時。
  7. Object storage,物件儲存:檔案系統格式必須是 ext4,或是 XFS。掛載點在 /srv/node。



2015-12-29