KKBOX 的音樂檔案儲存技術

前情提要

時間拉回到 2013 年,KKBOX 在當年的 COSCUP 曾介紹過如何使用 MogileFS 這套 DFS(Distributed file systems),儲存其音樂服務的各種檔案。

Slide: 全台灣最宅的科科科技如何利用 MogileFS 儲存數千萬個音樂檔案
錄影:

現在的狀況

時隔三年,雖然各間雲端服務商都有提供可靠的儲存技術可以使用,但 KKBOX 還是繼續使用原本的 MogileFS 來儲存大量的音樂檔案,隨著串接的唱片及版權公司逐年增加,音檔數量一直不斷成長。2013 年突破 1,000 萬首,2016/8/1 最新公布的數字(賀!KKBOX曲庫國際級水準 擴增至超過3000萬首歌!)是 3,000 萬首,這是取得授權上架的數字,實際上 KKBOX 後端的曲庫數量是超過這個數字。

MogileFS 規模

  • 儲存伺服器超過 75 台。
  • 總硬碟超過 2,300 顆。
  • 總儲存空間超過 10 PB
  • 使用 8 個機櫃。

Metadata Database

儲存檔案 Metadata 的 Database 技術沒有變化,依然使用 MySQL 搭配 HeartbeatDRBD 達到 High Availability

Tracker

Tracker 原本利用部分 storage server 分擔 replicate 工作,但遇到效能問題,所以改使用 4 台 dedicated 的伺服器負責 Tracker 角色。

每台 Tracker 都是兩張 1Gbps NIC 設定 802.3ad 模式的 Linux Bonding。

Storage Server 硬體規格

  • 系統碟用 2 顆 500GB SATA 硬碟設定成 RAID 1
  • 36 顆 6TB WD 紅標硬碟儲存 MogileFS 檔案。
  • 兩張 1Gbps NIC 利用 Linux Bonding Driver 設定標準 802.3ad 模式 LACP。
  • 一台 storage server 有 200TB 的空間。
  • 一機櫃 10 台 storage server 能提供 2PB 空間。

網路架構

  • tracker 和 storage server 都是兩條 1Gbps LACP 接到 Top-of-Rack 的 L2 Switch。
  • 每台 Top-of-Rack 都是兩條 10Gbps 光纖 LACP 到資料中心的 Core Router。

三年來的使用心得

優點

  • 成本相較企業級儲存解決方案(NetApp, EMC, …)低。
  • 容易擴充,KKBOX 從最一開始的 3 台 data node 逐漸成長到現在的超過 75 台。
  • 直接使用 NginxWebDAV module 包裝磁碟讀寫行為,能提供很高的效能,實際使用上能輕易的吃滿 storage server 的 2Gbps 頻寬。

缺點

  • 沒有自動 rebalance 的功能,在擴充容量後需要自行下指令 rebalance,讓各台間的磁碟使用量一致。
  • MogileFS 策略上會優先往磁碟使用量低的 device 寫入新資料,在平常的寫入量就不低的情況下,新增的 data node 數量太少,就容易有磁碟 I/O 及網路傳輸瓶頸。

This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

This entry was posted in Uncategorized. Bookmark the permalink.

3 Responses to KKBOX 的音樂檔案儲存技術

  1. Dennis says:

    How does it compare with Hadoop HDFS?

  2. Pingback: 使用 MogileFS 的一些經驗 | Hung-Yi Chen's blog

  3. Pingback: KKBOX 的音樂檔案儲存技術 | kkb0x.c0des – ericdeng

Leave a Reply

Your email address will not be published. Required fields are marked *