2015年7月28日 星期二

raspberry pi2 (osmc) NFS檔案伺服器

想當年在宿舍網路用網芳,沒事還會share作業給同學抓,不過share的東西太多時,
只要有人抓東西就會明顯感覺到電腦變慢,刻板印象就覺得網芳實在很慢又吃資源...

之前使用usb外接硬碟+raspbmc+samba把資料掛載到windows,使用上確實很方便,但不可否認那個速度真的有點慢,雖然播影片是還蠻流暢的,但前期buffer常要等個十來秒,若想點開片子看一下內容再換一片實在很慢...

看什麼影片姑且不詳談, 上周剛入手raspberry pi 2, 查了一下才發現raspbmc已經熄燈了, 
查了一下評比, 似乎接手的osmc還不錯, 所以就直接用osmc來做os. 

裝好以後發現他預設沒裝上samba, 不過ntfs相關套件倒是裝好了, 所以ntfs usb 外接碟接上去, 磁碟標籤若為usbdisk, 就會出現在/media/usbdisk下.

這次打算用nfs來做資料分享.

環境:
raspberry pi 1, 192.168.1.11 , 定位: nfs client
raspberry pi 2, 192.168.1.22 , 定位: nfs server
windows 7,     192.168.1.33 , 定位: nfs client

1. apt-get install nfs-kernel-server

2. 設定/etc/exports, 加入/media/usbdisk 192.168.1.0/24(rw,async,no_root_squash,subtree_check)
    (nfs具體參數先不管是否正確, 先會動, 要微調日後再研究)

3. exportfs -ua

4. exportfs -a

5. 到pi 1去, 先建立mount point
    mkdir /mnt/usbdisk

6. mount -t nfs 192.168.1.22:/media/usbdisk /mnt/usbdisk
檢查確認是否掛載成功

7. 到windows去, 先啟動nfs相關功能.

8. 連線網路磁碟機


9. 檢查是否連線成功
    連線成功, 但是明顯檔名會有亂碼, 查了一下, windows 至少到目前為止都還不支援unicide, 真要看中文檔名一定只能用big5....

10. 只能放棄了...























11, 若是這樣就不用寫這篇了, 查了一下發現有個fuse-convmvfs的套件可以在filesystem level做檔名charset轉換, 在pi 2安裝.
      apt-get install fuse-convmvfs

12, 設定虛擬掛載/media/usbdisk到/mnt/usbdisk_big5, 並指定charset由utf8改為big5
      convmvfs /mnt/usbdisk_big5 -o srcdir=/media/usbdisk,icharset=utf8,ocharset=big5

13, 設定/mnt/usbdisk_big5到nfs去
      vi /etc/exports , 加入
      /mnt/usbdisk_big5 192.168.1.0/24(rw,async,no_root_squash,substree_check,fsid=0)
          #後面的fsid=0是exportfs -a後出現訊息要求要加的, 具體幹嘛的改天有空再研究.

14, 更新nfs export list
      exportfs -ua; exportfa -a

15, do step 8,

16, 檢查連線後檔名, 成功.


至於究竟效能好不好, 速度夠不夠快?
還沒測, 回頭有空再測測看.