開始運行OpenStack Swift吧,OpenStack Swift是一個免費且開源的解決方案,用於構建大規模、高性能的對象存儲集群。本書中,Joe Arnold——SwiftStack的聯閤創始人兼CEO,將為您講述對象存儲的基本概念,並帶您走入對象的世界,您可以學到如何設計、構建、運營您自己的對象存儲集群並對其進行性能測試。
對於當今快速發展的網絡應用、移動應用以及軟件即服務(SaaS)應用來說,對象存儲已然不可或缺。本書將通過幾個獨立的部分——應用開發、安裝、管理及故障檢修,帶您熟悉對象存儲的整個流程。
■ 學習Swift有關組織、分發、服務數據方麵的基本概念
■ 探索Swift RESTful API的基本功能和高級特性
■ 探究Swift的多個客戶端庫,包括非常有用且極具特點的Python庫
■ 編寫中間件用於自定義或者簡化存儲係統
■ 理解部署Swift的需求,包括一些特殊用例
■ 學習集群的調優選項以獲取*佳性能
■ 獲取日常運營的*佳實踐,包括監控以及規劃增加容量
■ 選擇用於對集群進行測試和基準測試的閤適技術
本書主要介紹瞭OpenStack Swift的原理與架構,以及應用程序設計、安裝、部署、運維與性能測試等內容。本書用生動翔實的語言帶你領略Swift對象存儲的魅力,希望讀者能像Swift的標誌雨燕那樣在新存儲的世界裏翱翔。本書一共分為五大部分。第一部分主要介紹瞭Swift的概念、架構、原理。這一部分適閤所有讀者閱讀,我們希望你能夠瞭解Swift齣現的背景,理解Swift的概念、架構、原理,為你部署使用Swift集群打下堅實的基礎。第二部分主要涵蓋瞭Swift API、Swift客戶端庫、Swift的高級API特性等內容,並介紹瞭什麼是中間件以及如何開發中間件。這一部分主要是麵嚮開發人員的,旨在教會幫助開發人員如何基於對象存儲進行開發。第三部分主要介紹瞭如何安裝Swift,第四部分介紹瞭部署當中的一些注意事項以及如何進行硬件選型,第五部分講述瞭錯誤檢修和基準測試,這三部分特彆適閤存儲運維人員閱讀參考。
Joe Arnold是SwiftStack的CEO。SwiftStack是Swift的核心開發者。
奧思數據創始人兼CEO李明宇,之前在中科院軟件所工作,主要負責解決實際工程問題,帶領團隊承擔分布式係統和雲計算的相關工作。離開中科院後,李明宇一直緻力於OpenStack等雲計算和大數據相關開源技術的研究和傳播,為企業提供谘詢、評測等技術服務。李明宇的工作也得到瞭OpenStack國際社區的認可,受邀於2016年4月在奧斯汀OpenStack Summit峰會上進行培訓和分享。
前言 XVII
第一部分 基礎與架構
第1章 存儲的演進 3
當今數據的存儲需求 3
數據的增長:艾字節(Exabytes)、駭字節(Hellabytes)以及更多 4
非結構化數據的存儲需求 4
沒有放之四海而皆準的存儲係統 5
對象存儲與其他存儲類型的比較 6
新的存儲架構:軟件定義存儲(SDS) 7
軟件定義存儲組件 8
軟件定義存儲的優點 9
為什麼是OpenStack Swift 9
小結 10
第2章 初識Swift 11
認識SwiftStack 15
第3章 Swift數據模型和體係結構 17
Swift數據模型 17
Swift體係結構 20
服務進程(Server Processes) 22
一緻性進程(Consistency Processes) 24
定位數據 26
環基礎:哈希函數 26
環基礎:一緻性哈希環 28
環文件:修改後的一緻性哈希環 30
數據分發(Distribution of Data) 32
創建和更新環 32
創建和更新構造文件 32
重新平衡環(Rebalancing the Rings) 33
環內部結構 33
小結 34
第4章 Swift基礎 35
與集群交談:Swift API 35
發送請求 36
存儲URL 36
身份驗證 37
HTTP動詞 37
授權和采取行動 38
獲取響應 38
通信工具 39
命令行界麵 39
自定義客戶端應用程序 42
示例場景 43
小結 43
第二部分 Swift應用程序設計
第5章 Swift API概述 47
API到底是什麼? 47
CAP定理 48
Swift的亮點:高可用性、冗餘性和高吞吐量 49
Swift API:背景 50
迴顧超文本傳輸協議(HTTP) 50
錶現層狀態轉化(REST) 53
Swift、HTTP和REST 53
使用Swift API 54
關於你的Swift集群 54
認證 55
檢索數據 56
存儲數據 58
刪除數據 59
更新元數據 60
小結 61
第6章 Swift客戶端庫 63
客戶端庫 63
身份驗證交換 64
存儲請求:基本用法 65
其他語言的客戶端庫 68
Ruby 68
PHP 68
Java 69
存儲請求:高級用法 70
使用Python的其他注意事項 71
小結 71
第7章 高級API特性 73
大對象(Large Objects) 73
對象版本管理 75
對象過期 75
臨時URL中間件(TempURL) 76
錶單提交中間件 76
自定義元數據 77
上傳和更新元數據 77
跨域資源共享(CORS) 78
Swift集群信息 79
範圍請求 80
域重映射中間件 80
靜態Web托管(Static Web Hosting) 81
Content-Type頭 82
批量操作中間件 82
代碼示例 83
靜態大對象 83
動態大對象 84
對象版本管理 85
TempURL(Time-Limited URLs) 86
錶單提交 87
跨域資源共享(CORS) 88
自定義元數據 89
Swift集群信息 90
範圍請求 90
域重映射 91
靜態web托管 92
Content-Type 93
批量上傳 93
批量刪除 94
小結 94
第8章 部署Swift中間件 95
WSGI框架簡介 95
編寫WSGI 97
數據流和數據的修改 98
通過Paste來配置中間件 100
如何編寫Swift中間件 102
由內而外 104
簡單的例子 104
中間件中更多的工作 106
迴顧與前瞻 110
小結 111
第三部分 Swift的安裝
第9章 源碼安裝OpenStack Swift 115
下載OpenStack Swift 115
依賴 116
安裝Swift CLI(python-Swiftclient) 116
安裝Swift 117
復製Swift配置文件 117
配置Swift 117
嚮Swift中添加驅動器 118
存儲策略 122
創建環構造器文件 124
嚮構造文件中添加磁盤 128
添加硬盤 130
構建環 131
配置Swift日誌 132
創建日誌配置文件 132
重啓Rsyslog,開始記錄Swift日誌 133
配置代理服務 133
設置哈希路徑前綴和後綴 133
開啓代理服務 134
設置TempAuth驗證和Swift授權 134
開啓memcahed 134
在proxy-server.conf中添加用戶 135
啓動服務和重啓代理 135
賬戶認證 136
驗證賬戶訪問 137
創建容器 138
上傳對象 139
開啓一緻性進程 139
配置rsync 140
啓動其他一緻性進程 141
小結 141
第10章 安裝SwiftStack 143
SwiftStack控製器和節點概述 143
SwiftStack控製器 143
SwiftStack節點 145
使用SwiftStack創建一個Swift集群 146
創建一個SwiftStack控製器用戶 146
安裝SwiftStack節點軟件 147
聲明一個新節點 147
創建集群 148
獲取節點 149
啓用SwiftStack節點 149
配置SwiftStack節點 150
添加Swift用戶 150
SwiftStack中間件 151
部署到集群 152
通過網頁控製颱來創建容器和上傳對象 153
小結 154
第四部分 規劃Swift部署
第11章 Swift的硬件 157
節點的硬件規格 158
CPU 158
內存 161
盤 162
集群組網(Cluster Networking) 164
網卡(NIC) 165
對外網絡(Outward-Facing Network) 165
對內網絡(Cluster-Facing Network) 165
數據復製網絡(Replication Network) 166
帶外管理(Out-of-Band Management) 166
其他網絡連接 166
小結 167
第12章 規劃Swift部署 169
你的用例 169
係統設計 170
多少個節點? 171
節點服務分層(Tiering Node Services) 175
定義集群空間 176
節點命名規則 178
身份驗證與授權 178
組網 179
對外網絡 180
集群內部的網絡 181
示例部署 184
小規模集群:幾個節點 184
中等規模集群:多個機架 184
大規模集群:多個地域 184
小結 185
第13章 認證和授權 187
認證 187
認證係統工作原理 188
認證請求 190
認證處理 192
認證響應 194
在存儲請求中使用認證令牌 196
授權 196
授權案例 197
授權原理 197
存儲請求處理 200
令牌確認和授權信息查詢 200
授權迴調和響應 201
授權和訪問級彆 201
賬戶訪問控製 202
隻讀訪問(Read-Only Access) 202
讀寫訪問(Read-Write Access) 203
管理員訪問(Admin Access) 203
賬戶訪問控製的JSON字典 203
容器訪問控製 204
容器ACL示例 205
Swift認證係統 206
Keystone 206
TempAuth 206
SWAuth 207
SwiftStack認證係統 207
SwiftStack Auth 207
SwiftStack LDAP 208
SwiftStack Active Directory 208
小結 209
第14章 集群調優和性能優化 211
Swift設置 211
worker進程 212
塊大小 213
設置後颱進程 214
外部管理設置 218
Swift中間件 219
中間件管道 219
重要中間件 219
最有用的中間件 222
其他中間件 223
SwiftStack方法 224
小結 225
第15章 操作Swift集群 227
操作注意事項 227
Swift如何分發數據 228
追蹤環和構造器文件 228
管理容量 229
我們應當避免什麼 230
添加容量 230
現有集群:初始化節點上的環 231
添加節點 234
移除容量 239
移除節點 240
移除盤 241
使用SwiftStack管理容量 243
添加容量 244
添加盤 245
添加節點 246
移除容量 246
移除節點 246
移除盤 247
監控你的集群 248
Swift特有指標:監控什麼 248
監控和日誌工具 250
SwiftStack工具 250
使用SwiftStack進行操作 252
小結 253
第五部分 調試和檢修故障
第16章 硬件故障與恢復 257
處理故障的驅動器 258
處理已滿的盤 259
處理扇區和部分磁盤故障(也稱為位衰減) 259
處理無法訪問的節點 260
處理故障節點 261
節點故障案例研究 262
小結 263
第17章 基準測試 265
評估性能 266
性能指標、基準測試和測試 267
準備你的集群以進行基準測試 268
避免陷阱和錯誤 269
基準測試目標和工具 269
不要貪婪 270
瓶頸 271
使用ssbench進行基準測試 273
安裝ssbench 273
基本ssbench運行 273
定義用例 274
ssbench如何工作 275
測量基本性能 275
進一步使用ssbench 276
定義場景文件 277
ssbench-worker 280
啓動ssbench-worker的方法 280
使用swift-bench進行基準測試 281
準備 282
swift-bench如何工作 282
容器數量 282
測試高並發(-c, -b) 283
測試延遲 283
對象大小(-s, -l) 284
對象數(-n) 284
GET數(-g) 284
不刪除選項(-x) 284
創建配置文件 285
swift-bench運行示例 285
運行分布式swift-bench 285
swift-bench配置示例 286
統計工具 287
小結 288
Swift後記 289
這本書涵蓋瞭Swift對象存儲項目(簡稱為Swift)和SwiftStack對象存儲軟件公司。SwiftStack提供一種友好的方式來訪問、部署和管理集群。我們的目標是嚮你展示如何打造自己的Swift,展示SwiftStack的主要特性,並幫助你確定SwiftStack對你是否有意義。我們相信SwiftStack是一個適用於多種用途的好産品,不過也請你放心,Swift生態係統非常豐富並且在不斷完善,如果SwiftStack不是一個閤適的選擇,你還可以選擇其他的服務提供商。最後,我們想嚮你齣售Swift對象存儲産品,雖然它不一定是由SwiftStack公司齣品的。
從我在應用程序中第一次使用對象存儲至今已經過去瞭六年,我想分享一下個人的一些經驗,到底如何處理急劇增長的數據量。我很幸運地成為開發團隊的一員,我們的團隊開發瞭運行在上層Amazon Web Service上的第一個廣泛使用的平颱即服務(PaaS)環境。這使得整個行業意識到一個基於http的對象存儲係統有多麼強大。就我個人而言,我已經意識到對象存儲係統與傳統的存儲係統相比,可以提供更大的靈活性、更少的鎖定、更好的控製和更低的成本。業內一些其他的組織和機構也會秉承這一觀點。隨著數據(但不是IT預算)呈指數級增長,幾乎可以肯定地說,數據存儲的挑戰將一直存在,並且不斷增長,這將深刻地影響每一個擁有存儲需求和數據服務需求的個人或者企業。
由於我作為一綫人員在大規模部署和管理對象存儲係統中遭受瞭巨大的痛苦,所以我想寫一本書來幫助他人。作為部署人員,我發現自己經常需要更多實用的信息。我還想瞭解這些係統是如何工作的,想瞭解這些係統更加全麵的基本原理、為什麼要這樣設計,以及如何使用這些係統。目前,隨著Swift已經成為一個非常重要且快速發展的存儲技術,我希望這本書能夠對Swift對象存儲係統提供實踐和理論上的一些有幫助的見解。
在進一步探討之前,我想分享一下John Dickinson在最初的Swift開發團隊工作的經驗。John解釋瞭為什麼要開發Swift以及如何開發Swift,還有如何傳承OpenStack的協作和創新精神,並將其用於Swift的發展。
Swift的起源——從渺小到開放
OpenStack Swift項目技術主管、SwiftStack技術主管John Dickinson的迴憶。
2008年,Rackspace開發瞭他們的Rackspace Cloud Files雲存儲服務以滿足客戶需求,並提供給客戶一個類似於亞馬遜Simple Storage Service(S3)的存儲服務。在一定程度上,Rackspace Cloud Files底層技術的第一次迭代開發是非常偉大的。但坦白說,我們還需要大量的時間、精力和金錢去擴展它。非結構化數據增長如此之快,我們意識到我們需要更好的解決方案。所以在2009年8月,Rackspace組織瞭一個團隊來開發一個徹底的替代品,以替代他們最初的雲存儲平颱。我很幸運參與瞭該項目團隊,項目代號為“Swift”。
我們的團隊一共有9個人,我們協同工作,但是我們誰都沒有特定的角色。大多數情況下,我們坐在San Antonio市中心四樓的一個既小又熱的房間,確定哪些是我們需要解決的睏難和問題。我們試圖解決如何部署Swift,網絡會是什麼樣子,基礎架構是什麼樣子——還有類似的一些問題。我們精誠閤作,但我們也會熱烈爭論,以獲取最好的解決方案。我們長時間地考慮一個問題直至下班迴傢。第二天我們還會帶著解決方案迴來,然後去實現它,我們會選擇我們認為更好的解決方案。我們擁有很好的團隊氛圍,這是一個很棒的體驗。奇思妙想在屋子裏遊蕩,甚至有些想法很瘋狂。但是即便被大傢認為瘋狂的想法有時卻産生瞭非常好的效果。
我們在這裏工作瞭大約一年,2010年7月,我們的成果成為瞭Rackspace與NASA閤作的OpenStack項目的一部分,我們基於Apache 2許可證發布瞭Swift源代碼;我們貢獻瞭雲文件Swift代碼,後來它成為瞭OpenStack對象存儲;2010年10月,發布
這本書的齣現,可以說填補瞭市麵上對於OpenStack Swift技術深入解讀的空白。《對象存儲:OpenStack Swift應用、管理與開發》以其係統性的梳理和詳盡的剖析,為讀者提供瞭一個全麵瞭解Swift的窗口。它不僅僅是停留在API接口的層麵,而是深入到Swift的底層架構,包括其分布式特性、數據一緻性協議、訪問控製機製等方麵。我尤其欣賞書中關於Swift如何實現高可用和彈性擴展的討論,這對於構建大規模、高可靠的對象存儲服務至關重要。書中對Swift的組件和服務進行瞭一一拆解,使得讀者能夠清晰地看到Swift是如何協同工作的。即使是對對象存儲有一定瞭解的讀者,也能從這本書中獲得新的啓發和深刻的認識。它提供瞭一個從概念到實踐的完整鏈條,對於任何想要深入研究或使用Swift的專業人士來說,都是一本不容錯過的參考書。
評分作為一名在企業環境中負責運維OpenStack的工程師,我深知穩定可靠的存儲是整個平颱的基石。我手頭正好有一本《對象存儲:OpenStack Swift應用、管理與開發》,這本書無疑是我工作中的一本重要參考。它不僅僅是理論上的講解,更重要的是提供瞭大量實操性的指導。從Swift的安裝部署、配置優化,到監控告警、性能調優,再到故障排查和災難恢復,書中都給齣瞭詳細的步驟和建議。我尤其對書中關於Swift集群容量規劃、節點選型以及網絡優化的章節印象深刻,這些內容直接關係到我們能否構建一個高效、低成本且高可用的對象存儲服務。書中還分享瞭一些常見的運維場景和解決方案,例如如何處理數據遷移、如何升級Swift版本、以及如何應對大規模集群的挑戰,這些經驗對我來說是無價的。這本書讓我在麵對復雜的OpenStack Swift環境時,不再感到束手無策,而是能夠更加從容地進行管理和維護。
評分我是一名正在學習雲開發的學生,對OpenStack的各個組件都充滿瞭好奇。《對象存儲:OpenStack Swift應用、管理與開發》這本書恰好滿足瞭我對Swift這一核心組件的探索欲。書中從開發者的角度齣發,詳細介紹瞭Swift的API接口、SDK的使用方法,以及如何通過編程的方式實現對象的上傳、下載、刪除等操作。我最喜歡的是書中關於Swift的RESTful API設計理念的講解,它讓我理解瞭為什麼Swift能成為一個靈活且易於集成的對象存儲解決方案。此外,書中還包含瞭一些實際的開發案例,比如如何利用Swift來存儲用戶上傳的圖片、視頻等媒體文件,或者如何將其作為SaaS應用的數據後端。這些案例生動形象,讓我能夠更快地將所學知識應用到實際的項目開發中。這本書無疑是我在OpenStack開發學習道路上的一盞明燈,幫助我更好地理解和掌握Swift這一強大的工具。
評分這本書的價值在於,它不僅僅是關於OpenStack Swift的“怎麼做”,更在於“為什麼這麼做”。《對象存儲:OpenStack Swift應用、管理與開發》在講解Swift的各項功能和特性的同時,也深入探討瞭其背後的設計哲學和技術原理。例如,在討論Swift的最終一緻性模型時,書中並沒有簡單地給齣結論,而是詳細分析瞭不同一緻性模型之間的權衡,以及Swift為何選擇瞭當前的實現方式。這種深入的分析,能夠幫助讀者建立起對對象存儲係統更深層次的理解,而不僅僅是停留在錶麵的操作。書中對於Swift在實際應用中可能遇到的各種挑戰,如數據安全、性能瓶頸、成本控製等,也進行瞭細緻的探討,並提齣瞭相應的解決方案。這使得這本書的內容更加貼近實際需求,能夠指導讀者在麵對復雜場景時做齣更明智的技術決策。它是一本既有理論深度,又不乏實踐指導的優秀著作。
評分我一直對雲計算的底層技術頗感興趣,尤其是存儲方麵。最近有幸讀到一本名為《對象存儲:OpenStack Swift應用、管理與開發》的書,雖然我並非Swift的重度使用者,但這本書的深度和廣度確實讓我大開眼界。書中對對象存儲的基本概念、工作原理以及Swift在OpenStack生態中的定位進行瞭非常詳盡的闡述。從最初的存儲對象、元數據到數據的一緻性模型,再到Swift的架構設計,作者都娓娓道來,條理清晰。我特彆欣賞其中關於Swift如何處理高並發讀寫、數據冗餘和故障恢復的部分,這部分內容讓我對分布式存儲係統的魯棒性有瞭更深刻的理解。此外,書中還涉及到Swift的API設計、客戶端開發,以及如何與OpenStack的其他組件(如Keystone、Glance)進行集成,這些內容對於想要深入瞭解Swift實際應用場景的讀者來說,無疑是寶貴的財富。即使我目前不需要直接開發Swift應用,閱讀這本書也極大地拓寬瞭我對雲原生存儲技術的認知邊界。
評分還沒看 看完再評價
評分很快很新
評分順便買一本,有需要再看
評分確定是新版的嗎?上麵的例子都是幾年前的,
評分確定是新版的嗎?上麵的例子都是幾年前的,
評分對象存儲是新概念,學習一下!
評分還沒看
評分我正需要這本書,手上正有項目
評分openstack介紹對象存儲的書,和ceph配閤起來看正閤適
本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 book.cndgn.com All Rights Reserved. 新城书站 版權所有