OMV – RPi: NAS đơn giản và bất tiện

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

Username: admin
Password: openmediavault

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:

  1. Gắn đĩa mới vào RPi
  2. 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

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

Quota đặt trên partition, không phải trên folder
Quota tính bằng dung lượng đĩa, không tính theo inode
OMV thêm vào /etc/fstab một dòng để khởi tạo quota trên partition

8. Chia sẻ qua NFS

Bật dịch vụ NFS
Share thư mục qua NFS, không xác định user

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

Không thấy vai trò của userA

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

Chia sẻ thư mục qua Samba

Khi chia sẻ thư mục test qua SMB, OMV chèn vào file /etc/samba/smb.conf các dòng sau:

Không thấy vai trò của userA

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.
Format lv như với partition. Filesystem mới có tên /dev/dm-0
Mount logical volume
Tạo thư mục chia sẻ toàn bộ filesystem
Chia sẻ qua NFS

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ẻ.

Comments Off on OMV – RPi: NAS đơn giản và bất tiện

Filed under Software

Comments are closed.