SequoiaDB巨杉資料庫入門:快速搭建流媒體伺服器

OliverFinn發表於2019-05-27

使用SequoiaDB的分散式檔案系統搭建流媒體伺服器

介紹

如今使用移動網際網路的年輕人開始越來越多使用短視訊展示自我,而流媒體則是支撐線上視訊播放的核心技術。當我們開始構建流媒體站點時,往往面臨最大的難題在於大量媒體音視訊檔案所佔用的海量磁碟空間。譬如說,一個標準高清短視訊可能需要30-50MB的儲存空間,那麼儲存百萬短視訊的系統就需要幾十TB的儲存。而如果我們更進一步需要播放高清電影等視訊內容,每個電影需要大概2GB左右的空間,十萬部各種電影劇集則需要200TB的儲存容量。

 

為了滿足如此海量的音視訊檔案儲存需求,大部分流媒體伺服器使用外接NAS甚至分散式檔案系統進行PB級海量資料儲存。

 

通過閱讀本文,使用者可以瞭解到如何使用SequoiaDB巨杉資料庫的分散式檔案系統功能,為開源流媒體伺服器Emby構建後端可彈性擴充套件的分散式儲存。

 

Emby是一款被廣泛使用的流媒體伺服器,允許使用者簡單一鍵式部署自己的視訊播放系統,將家庭內部或企業儲存的圖片、音視訊檔案進行統一管理,並能夠在幾乎全部裝置上線上播放觀看。

 

使用者可以在Emby的服務端設定伺服器路徑指定其所訪問的檔案系統。一般來說,使用PC機或NAS裝置內建的磁碟儲存容量有限,因此如果希望將Emby後端的儲存使用分散式檔案系統替換傳統內建盤,可以使用SequoiaDB所提供的分散式檔案系統SequoiaFS,提供使用者近乎無限可彈性擴充套件儲存容量。

安裝SequoiaDB

本文使用Linux Ubuntu Server 18.10作為伺服器,SequoiaDB巨杉資料庫版本為3.2。

 

本教程預設使用sudo使用者名稱密碼為“sequoiadb:sequoiadb”,預設home路徑為/home/sequoiadb。

 

對於使用CentOS等其他Linux版本的使用者,本文所描述的流程可能略有不同,需要根據實際情況自行調整。

 

下載SequoiaDB 標準虛擬機器模板的使用者可以直接跳過該安裝部署步驟。

更多安裝細節可以檢視SequoiaDB資訊中心

 

1)      下載並安裝SequoiaDB巨杉資料庫

$ wget http://cdn.sequoiadb.com/images/sequoiadb/x86_64/sequoiadb-3.2-linux_x86_64.tar.gz

$ tar -zxvf   sequoiadb-3.2-linux_x86_64.tar.gz

$ cd   sequoiadb-3.2/

$ sudo ./setup.sh

之後一直回車確認各個預設引數即可。

 

2)      使用資料庫例項使用者建立預設例項

# 預設密碼使用“sdbadmin”

$ su – sdbadmin

$   /opt/sequoiadb/tools/deploy/quickDeploy.sh

 

3)      使用root使用者建立SequoiaFS檔案系統

# 確認fuse核心元件被安裝,且版本大於2.9.4。

$ which   fusermount

/bin/fusermount

$ fusermount -V

fusermount   version: 2.9.8

 

# 建立名為Nas.Storage的集合容器

$ /opt/sequoiadb/bin/sdb   "db=new Sdb(); db.createCS('Nas'); db.Nas.createCL('Storage');"

 

# 建立mountpoint掛載點目錄

$   mkdir -p /opt/sequoiadb/mountpoint

 

# 退出sdbadmin使用者,回到預設sequoiadb使用者

$ exit

 

# 密碼預設為“sequoiadb”

$ sudo ln -s   /opt/sequoiadb/bin/sequoiafs /usr/local/bin/sequoiafs

 

# 為fuse核心開啟多使用者訪問許可權

$ sudo sed -i   "s/\#user_allow_other/user_allow_other/g" /etc/fuse.conf

 

# 建立sequoiafs所需的目錄與空配置檔案

$ sudo mkdir -p /opt/sequoiafs/conf/NasStorage/

$ sudo mkdir -p /opt/sequoiafs/log/NasStorage/

$ sudo touch /opt/sequoiafs/conf/NasStorage/sequoiafs.conf

$ sudo chown -R   sdbadmin:sdbadmin_group /opt/sequoiafs

 

# 切換回資料庫例項使用者,密碼預設為“sdbadmin”

$ su – sdbadmin

 

# 建立sequoiafs檔案系統

$ sequoiafs   /opt/sequoiadb/mountpoint -i localhost:11810 -l Nas.Storage --autocreate -c   /opt/sequoiafs/conf/NasStorage/ --diagpath /opt/sequoiafs/log/NasStorage/ -o   big_writes -o auto_unmount -o max_write=131072 -o max_read=131072 -o   allow_other

 

# 檢查檔案系統載入正確

$ mount

sequoiafs on   /opt/sequoiadb/mountpoint type fuse.sequoiafs   (rw,nosuid,nodev,relatime,user_id=1001,group_id=1001,allow_other,max_read=131072)

安裝Emby

本教程使用Emby版本為4.1.1。

 

1)登入Emby官網 https://emby.media 下載安裝包

 

 

 

或登入sequoiadb使用者,使用wget下載安裝包

$ wget   https://github.com/MediaBrowser/Emby.Releases/releases/download/4.1.1.0/emby-server-deb_4.1.1.0_amd64.deb

 

2)安裝Emby Server

# 密碼預設使用“sequoiadb”

$ sudo dpkg -i   emby-server-deb_4.1.1.0_amd64.deb

 

3)開啟瀏覽器,登入Linux伺服器8096埠

 

4)按照嚮導進行配置,使用者名稱密碼建議均使用sdbadmin

 

5)在新增媒體頁面新增SequoiaFS掛載點作為外接分散式檔案系統

 

6)在新增媒體庫頁面,內容型別選擇Movies,輸入顯示名後點選目錄旁邊的“+”號

 

7)使用 /opt/sequoiadb/mountpoint 作為分散式檔案系統掛載點路徑,並點選OK

 

8)點選OK進入下一步配置

 

9)按照嚮導完成後續配置

 

上傳並使用流媒體伺服器

1)將電影視訊拷貝入 /opt/sequoiadb/mountpoint 目錄

sftp> put   YourName.mp4

Uploading   YourName.mp4 to /opt/sequoiadb/mountpoint/YourName.mp4

sftp> put 教父BD雙語雙字.mkv

Uploading 教父BD雙語雙字.mkv   to /opt/sequoiadb/mountpoint/教父BD雙語雙字.mkv

 

# 檔案系統中通過ls可以看到檔案大小

$ pwd

/opt/sequoiadb/mountpoint

$ ls -la

total 3978136

drwxr-xr-x  2 sdbadmin sdbadmin_group       4096 Jan  1    1970 .

drwxr-xr-x 23   sdbadmin sdbadmin_group       4096 May   15 10:13 ..

-rw-r--r--  1 sdbadmin sdbadmin_group  761962089 May 15 11:03 YourName.mp4

-rw-r--r--  1 sdbadmin sdbadmin_group 3311639424 May 15   11:12 教父BD雙語雙字.mkv

 

2)在Emby首頁的媒體庫點選“重新整理後設資料”進行後臺後設資料同步

 

進入電影庫可以看到上傳的電影

 

3)點選電影可以線上播放

 

結論

SequoiaDB巨杉資料庫作為一款分散式資料庫,提供包括結構化SQL、與非結構化檔案系統和物件儲存的機制。

使用SequoiaDB的非結構化儲存能力,使用者可以輕鬆基於分散式檔案系統介面構建多媒體應用程式,並保持與傳統Posix檔案系統的完整相容。

本文向讀者展示瞭如何通過SequoiaDB的檔案系統介面能力構建與Posix檔案系統相容的分散式檔案系統,同時搭建Emby流媒體伺服器。通過使用基於SequoiaDB的分散式檔案系統能力,流媒體伺服器能夠使後臺的儲存空間得到近無限的彈性擴充套件能力。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31534344/viewspace-2645758/,如需轉載,請註明出處,否則將追究法律責任。

相關文章