Chúng ta có thể cài đặt Open Media Vault để biến RPi thành một NAS có NFS, SMB/CIFS, FTP, SSH…
Tuy nhiên, OMV là một NAS giản lược và bất tiện, chủ yếu vì OMV dùng quota để giới hạn dung lượng đĩa.
Người dùng phải dùng dòng lệnh để phân chia partition hay logical volume nếu muốn có một NAS đúng nghĩa.
Ngoài ra không có Plugins Surveillance
Chuẩn bị RPi
- Flash Pi OS phiên bản lite
- Tạo file rỗng /boot/ssh để chuẩn bị ssh
- Thay đổi mật khẩu cho pi
- Cập nhật hệ thống
- Chưa cần tạo IP cố định vào lúc này vì OMV sẽ xóa /etc/dhcpcd.conf và quản lý static ip bằng /etc/netplan/*.yaml
Sau khi cài đặt Pi OS, phần OS chiếm 1.4G
Cài đặt OMV
Tải script install về và chạy
wget https://github.com/OpenMediaVault-Plugin-Developers/installScript/raw/master/install
chmod +x install
./install
Cài đặt khá lâu, xong OMV tự reboot. Sau khi khởi động lại (cũng khá là lâu), IP có thể bị thay đổi. Dung lượng chiếm dụng đĩa sau khi cài OMV là 1.8G
Vì OMV không cho chia sẻ phần đĩa trống còn lại trên partition root nên tốt nhất là resize partition này đến kích thước khoảng 2-3GB để có thể sử dụng phần đĩa còn lại như một partition trống.
Chia sẻ tài nguyên đĩa
Chúng ta sẽ phân tích OMV làm gì khi chia sẻ không gian đĩa qua NFS và SMB/CIFS
Các bước chia sẻ đĩa như sau:
- Gắn đĩa mới vào RPi
- Storage – Disk – Wipe để xóa hoàn toàn cấu trúc đĩa đã có
3. Storage – File Systems – Create để định dạng đĩa theo hệ thống file được chọn
Khi đó một partition chiếm toàn bộ dung lượng đĩa được tạo
4. Mount partition
5. User Management – Users – Create
Trước khi tạo thư mục chia sẻ cần phải tạo user, bởi vì chia sẻ dưới quyền và quota dùng đĩa của user.
6. Storage – Shared Folders
Shared folder là một khái niệm quản lý của OMV, tùy theo người dùng chia sẻ bằng NFS hay SMB khi đó OMV sẽ tạo một thư mục cụ thể ở vị trí tương ứng. Mặc định mọi user đều có quyền như nhau trên thư mục mới tạo.
7. Đặt quota
8. Chia sẻ qua NFS
Khi chia sẻ thư mục test qua NFS, OMV tạo thư mục chia sẻ /export/test và đặt dòng lệnh chia sẻ tại /etc/exports
Nếu không dùng quota của userA, việc chia sẻ qua NFS trãi rộng trên toàn partition.
Để dùng các thuộc tính và quota của userA, người dùng phải tự sửa file /etc/exports và khởi động lại dịch vụ nfs
- đặt userA là owner của /export/test để có quyền đọc/ghi trên thư mục này
- đặt anonymous user là userA qua uid và gid trong file /etc/exports, khi đó kết nối từ NFS client sẽ làm việc với quyền và chịu hạn chế về quota của userA
# đặt owner
sudo chown -R userA: /export/test
# lấy uid và gid để đặt lại anonymous user cho NFS
read uid gid <<<$(id userA | sed 's/uid=\([0-9]*\).*gid=\([0-9]*\).*/\1 \2/')
sed -i "s|/export/test .*|/export/test ip_group(rw,subtree_check,insecure,no_root_squash,all_squash,anonuid=$uid,anongid=$gid)|" /etc/exports
# nạp lại chia sẻ NFS
exportfs -ra
9. Chia sẻ qua SMB/CIFS
Khi chia sẻ thư mục test qua SMB, OMV chèn vào file /etc/samba/smb.conf các dòng sau:
Nếu không dùng quota của userA, việc chia sẻ qua SMB trãi rộng trên toàn partition.
Để dùng các thuộc tính và quota của userA, người dùng phải tự sửa file /etc/samba/smb.conf và khởi động lại dịch vụ samba
sudo sed -i 's/^valid users =/valid users = userA/' /etc/samba/smb.conf
sudo systemctl restart smbd
Phân tích
OMV dùng quota để giới hạn dung lượng của thư mục chia sẻ, nhưng quota cấp hạn mức sử dụng cho user trên partition chứ không phải thư mục. Vì vậy không thể đặt quota cho user khác nhau trên từng thư mục. Thực tế OMV không dùng các thuộc tính của user trong chia sẻ folder và không có quota trên folder. Vì vậy trong quá trình sử dụng có thể bỏ qua mục user và quota.
OMV cũng cài đặt lvm2 nhưng không sử dụng qua giao diện web, người dùng phải sử dụng dòng lệnh để tạo volume group và các logical volume, sau đó các logical volume được OMV cư xử như các đĩa bình thường.
Cần nhắc lại là chúng ta có thể tạo logical volume với dung lượng tùy ý nên không cần dùng quota.
# Chạy lần đầu khi gắn đĩa vào RPi
root@raspberrypi:~# vgcreate vgTest /dev/sda
Physical volume "/dev/sda" successfully created.
Volume group "vgTest" successfully created
# Tạo LV dung lượng 4GB
root@raspberrypi:~# lvcreate -L 4G -n lvTest vgTest
Logical volume "lvTest" created.
Chia sẻ qua Samba tương tự như trên
Chú thích
- OMV cho phép chia sẻ một thư mục đồng thời qua NFS và SMB/CIFS
- Cùng tên thư mục chia sẻ test nhưng OMV cho NFS dùng /export/test, SMB/CIFS dùng một thư mục con test nằm trong /srv/dev-div-by-uuid-…/ nên không có xung đột khi chia sẻ test qua NFS và SMB đồng thời
- OMV cài đặt quota, lvm2 nhưng không dùng.
- Người dùng có thể chỉnh sửa thủ công để quota có hiệu lực
- Nếu không chỉnh sửa thủ công, NAS OMV – RPi có thể không dùng được cho camera vì không xác định được dung lượng của thư mục chia sẻ.