
Backblaze 使用 Apache Cassandra 提供 IaaS
Backblaze 於 2007 年成立,總部位於加州聖馬刁,是一家雲端儲存公司,管理超過 1 艾位元組的資料,客戶遍及 175 個國家/地區。
Backblaze 儲存雲端為企業、開發人員、IT 專業人員和個人提供基礎,用於儲存、備份、封存資料,並與其他領先技術公司合作,主機內容、管理媒體、建置應用程式等
這家公司最初是一家電腦備份公司,在一個一房一廳的公寓中經營,明確的使命是讓儲存和使用資料變得非常容易。在早期,Backblaze 是攝影和家譜等領域中廣受歡迎的備份服務。它專注於讓備份保持簡單易用,隨著時間推移,擴大了它的吸引力。
自 2013 年以來,Backblaze 定期發布硬碟效能統計資料和見解,是市場上唯一這樣做的參與者。這種透明度與現有和潛在使用者產生共鳴,並在開發人員和 IT 專業人員中獲得追隨者,他們希望執行比 Backblaze 目前提供的更複雜的任務。隨著其 Backblaze 電腦備份產品穩固地建立起來,該公司決定開發 Backblaze B2 雲端儲存,這是一個提供基礎架構即服務 (Iaas) 的雲端儲存平台。
此 IaaS 將提供直接 API 存取,並讓開發人員和 IT 人員能夠在雲端儲存、擷取和/或分享資料,並在僅支付他們使用的費用時擴充或縮減規模。基本上,Backblaze B2 提供類似於 Amazon S3、Microsoft Azure Storage 和 Google Cloud Storage 的雲端儲存,易於使用、價格合理且值得信賴。
然而,現有的電腦備份堆疊並不適合這個新的用例。它是一個自訂儲存,公司也控制了客戶端。「電腦備份索引非常自訂化,說明了電腦備份系統如何運作,因此我們必須從頭開始使用 Backblaze B2 並建立一個不同的系統,」Backblaze 的資深系統管理員 Elliott Sims 說道。
在這個時候,Backblaze 調查了分散式資料庫,並引入了 Apache Cassandra。
見證引言
「我們需要一些可以處理非常高的寫入吞吐量,並在寫入吞吐量上持續擴充的東西。這迫使我們尋找分散式儲存,而 Apache Cassandra 是符合我們需求的選項。」
資深系統管理員
在 2015 年推出 Backblaze B2 時,公司採用 Ansible 進行軟體配置、組態管理和應用程式部署,並將其與 Apache Cassandra 配對以滿足其資料需求,運用範本和 Reaper 來處理修復。在選擇 Apache Cassandra 時,有幾個重要的優點使其成為新雲端解決方案的首選
可擴充且具彈性的效能,提供
隨著加入更多主機,Backblaze 需要看到寫入吞吐量的增加。「如果你只需要讀取吞吐量,傳統的 MySQL 複製就能很好地運作,因為你可以持續複製,但我們也需要寫入吞吐量。Cassandra 能夠開箱即用地做到這一點,而不是在 MySQL 上使用分層或我們自己的分片,」Sims 說道。Backblaze 也發現,使用 Cassandra 的寫入吞吐量和擴充幾乎是線性的。「30 台機器表示擁有三倍於 10 台機器使用 Apache Cassandra 的容量,或者說,2.95 倍。」
資料中心故障時也能承受的耐用性
雖然寫入吞吐量是一個關鍵問題,但 Backblaze 也需要一些標準的資料庫需求:「當我們放入一段資料時,如果機器崩潰,它需要保留在那裡。它不能只丟失一部分資料,就像某些 NoSQL 資料庫容易發生的一樣。它必須寫入磁碟,而不是暫存器,例如定期快照,」Sims 說道。
沒有停機時間的容錯能力
與任何重視其資料庫操作員睡眠的公司一樣,Backblaze 希望有能力在夜間損失一台機器,「我們不希望必須呼叫某人來緊急修復。我們需要一個可以承受和忽略任何單一機器離線的解決方案。」由於 Apache Cassandra 是分散式的,所有資料都會自動複製到多個節點,因此沒有單一故障點
Apache Cassandra 4.0 對 Backblaze 的優點
跳到 4.0 對 Backblaze 來說不是立即考慮的事項,「我們使用 Apache Cassandra 的方式是作為使用者檔案所在位置的權威真實來源,而不是分析等等,所以我們有點謹慎,」Sims 說道。但有許多功能是 Backblaze 興奮想利用的,他們預期在 4.0.1 或更新版本發布時進行轉移。
增量修復以消除墓碑問題
「最大的優點是增量備份結合分層壓縮策略,」Sims 表示。Backblaze 使用多個小型表格,其中墓碑(已刪除但尚未從磁碟中清除的資料)一直是個問題。使用 SizeTieredCompactionStrategy (STCS),您可以設定 Cassandra 僅壓縮已修復的墓碑。這表示您可以設定非常短的 gc_grace_seconds,這表示墓碑會在您可能使用的小型表格上更頻繁地清除 […] 它們只佔總數的一小部分,因此如果我們每天多次對它們執行增量修復,這些墓碑的存續時間會非常短暫 - 十小時,而不是十天。這基本上會消除問題。
透過令牌分配變更簡化資料遷移
在執行資料中心遷移時,Cassandra 4.0 將使用戶能夠根據複寫層級而非架構來分配令牌,這消除了先有雞還是先有蛋的依賴關係。「能夠根據特定架構來分配令牌有助於平衡,」Sims 表示。「但新方法消除了為新資料中心手動分配令牌的繁瑣程序 […] 這將讓我在後續的資料中心遷移中更輕鬆,並減少 vnode 數量。」
適用於 Cassandra 的 Kubernetes
雖然 Backblaze 目前有一個 Kubernetes 測試環境正在執行,但 Sims 表示,隨著 Backblaze 為 Backblaze B2 新增雜項服務,他們正在更多地轉移到該環境。「我認為我們最終會將 Cassandra 遷移到 Kubernetes,但目前我們使用 Ansible 控制的裸機 […] Reaper 大多時候都很容易管理,而且隨著我們將更多叢集上線,我們將對 cass-operator 的 Reaper 元件更感興趣。」
雖然 Sims 表示 Apache Cassandra 有各種複雜性和痛點,但他認為它兌現了對 Backblaze 的承諾:「Apache Cassandra 兌現了可擴充寫入吞吐量和復原力的承諾,它會在它說會的時候保留您的資料。這些都是重要的事情,而且 […] 不幸的是,我不能說其他一些新的儲存系統也能保留您的資料。」
關於 Backblaze
Backblaze 讓企業和消費者管理資料變得異常容易。Backblaze Storage Cloud 為廣大的開發人員、IT 通才、企業家和尋求簡單、經濟實惠、值得信賴的解決方案的個人提供了一個基礎平台。該公司管理著超過一艾位元組的資料,目前與 175 個以上國家的客戶合作。該公司成立於 2007 年,總部位於加州聖馬刁。如需更多資訊,請前往 www.backblaze.com。