2015/11/23

QNAP Ubuntu Station: 透過 NAS 上的 HDMI 輸出,使用 Ubuntu 桌面


今年年中敝部門第一項作品 Container Station 發佈後,年底第二項作品也終於要登場,Ubuntu Station。

QNAP NAS 是少數幾個有支援 HDMI 輸出的 NAS 品牌,過去公司開發了 HD Station,HD Station 針對了電視上使用的族群設計並結合一些常用應用程式,像 Kodi,YouTube TV。

Ubuntu Station 也是使用了 NAS HDMI 輸出,但輸出的是 Ubuntu 桌面,藉此讓 QNAP NAS 能有更多輕鬆的客制化方式。以下將對 Ubuntu Station 的功能做介紹。

完整的 Ubuntu 功能

此 Ubuntu 是由 LXC Ubuntu 14.04.3 (約 11 月初的版本) 客制化而成,原先 Ubuntu 可以使用的應用程式或套件管理系統 apt 皆能正常使用,因此過往在 NAS 很難安裝其他自由軟體在 NAS 上的問題也能迎刃而解。下圖是使用指令安裝 VLC 播放器的螢幕截圖:



除了一般的軟體外,QNAP 針對 DKMS (Ubuntu 內動態編譯 kernel module 的機制) 也有做修正;舉例來說若要安裝 VirtualBox ,按照官網說明即可安裝,與一般軟體不同的是,在安裝中會編譯 VirtualBox 需要的 kernel module (vbox*.ko) 並安裝至系統中,QNAP 有針對這個流程優化,下圖即是在 Ubuntu Station 使用 VirtualBox 安裝 Windows 7 的截圖:



整體來說 QNAP 在這裡是儘可能的減少客制化,以提供跟光碟安裝出來相同的使用情境。(其實 QNAP 做了不少 bug fixes)

QTS 網頁控制頁面

在第一次安裝只需在 QNAP NAS App Center 裡點選安裝 Ubuntu Station 即可,開啟 Ubuntu Station 網頁控制頁面,第一次使用時約需下載 700 MB root file system,以及從 Ubuntu repository 下載更新,完成安裝後網頁界面如下圖:



它除了可控制解析度,聲音來源,另外我們提供的網頁界面的 VNC 可直接遠端操作 Ubuntu。

資料匣同步

在 Ubuntu 內也有 /share 資料匣這部份完全跟 NAS shared folder 同步,此外開啟 Ubuntu 檔案總管 (nautilus),我們將 NAS shared folder 直接放在左邊的 Sidebar,讓使用者更容易操作 NAS 上的檔案,如下圖左上視窗,而在 NAS 上的 File Station 也多了個 Ubuntu 類別直接存取 Ubuntu 登入使用者的家目錄,如下圖右下:



藉此,像是 NAS 原本提供的服務,如 Backup Station 將可直接備份 Ubuntu 檔案到遠端電腦。

獨立 IP

原先在 LXC 網路設計是用 veth,這樣的網路架構對於要開 port 給別人存取的服務會很不方便,所以這部分 QNAP 故意改用 bridge 到 default gateway 的網卡,讓 Ubuntu 也能有跟 NAS 同一個網域的 IP。

LXC 原生效能,安全,硬體加速

LXC 提供了接近原生效能,也更安全,我想這 2 點不用多說。靠著原本 LXC 設計的架構 QNAP 授與它直接與 graphic 硬體存取能力,因此原本這張顯卡能提供多少的能力,在 Ubuntu Station 也能提供相同能力,下圖顯示了 glxinfo and VAAPI 的支援狀況:


總結

目前看來 Ubuntu Station 應能在 TS-X53A 推出時一同上市,而其它較新的機種(X51, X53, X70, X71...)應該在 12 月中一同支援。因為小弟家裡是 TVS-471,這台應該能得到更好的支援(誤)


最後我想學跟蛋黃哥一樣躺著說:好~累~喔~

2015/08/17

QNAP Container Station in COSCUP





週六,有幸能在 COSCUP 分享用 QNAP Container Station 打造 CI 環境。投影片如下:



伴隨著即將 release 的 NAS Firmware 4.2,Container Station 也終於能一同發佈了。

Container Station 有許多獨家功能,像是
  1. 同時支援 ARM and x86 平台,最近出的 NAS 都有支援這個功能。
  2. 除了當紅炸子雞 Docker 外,我們還支援 LXC,LXC 更適合做 OS 的虛擬化。
  3. 自動偵測 Docker Image 裡的設定,大部分 Image 不用多做設定就能直接使用。
除此之外,為了廣大的開發者我們還提供了這些實用功能:
  1. 一鍵架設 Docker Registry,相信真的在用 Docker 的人都需要這個服務。
  2. Container Station 也可以存取已經架好的 Private Registry
  3. 用 Docker compose 來架 App Repository,而且也開放格式在 github 上。
  4. 可以輕易自己 fork 我們的 qnap-dev/container-app 來放你自己的 App,UI 上設一下就可擺脫 QNAP 的控制 (雖然我們很希望你提 PR 給我們)
  5. 進階使用者,我們已經為你提供直接存取 docker service 用到的 CA, Cert and Key,照著 UI 提示就行。
  6. 進階使用者,我們也提供了我們的 API,你可以輕易用 API 打造自己的工具。

此外,Container 也能跟原本 QNAP 獨家提供的 Virtualization (qemu-kvm) 也能結合應用。
以下影片是在 docker container 內,跑 qemu-kvm 的虛擬化,你只要給定 ISO 的位置,就可以輕易開出一台虛擬機,還附上了 HTML5 VNC 的功能,這種應用我想目前是拿來做 target under test 是還不錯方便。



最後,LXC 還有一些額外應用,COSCUP 現場,我們的攤位上,2 台電視上的 Ubuntu 是直接用 Container Station 內的 LXC container 輸出的,這個功能也讓你的 NAS 不再只是 NAS,說是台桌機也不為過,實際上我用 TS-471 拿來裝 Steam 玩遊戲,效果很不錯。




最後的最後,我相信我們產品是非常有趣且富競爭力,我們也還在徵人,辦公位址可以在忠孝新生捷運站附近或汐止,有 Python,Go,AngularJS/React 技能的人非常歡迎直接與我聯絡 dorowu_AT_qnap.com。