NAS

From 太極
Revision as of 08:22, 24 September 2024 by Brb (talk | contribs) (→‎CasaOS)
Jump to navigation Jump to search

OpenMediaVault

  • Install & Configure openmediavault (omv6) | DIY NAS Part 3 - Software 2023/4/21. Quite complete !!
    • Set up Users first before messing up folders. The order is similar to the way clients access shared folders.
    • After creating a shared folder in Storage menu, go back to Users menu. Select a user and click "Shared folder privileges". Click on "Read/Write" to enable it (Yellow).
    • Go back to the shared folder. Click on "Privileges" icon. We can verify who has what kind of privileges.
    • After generating "Shared folders", we still need to go to Services and enable NFS or SMB/CIFS. This is two steps: one is to enable it and the other is to add individual shared folders to either SMB or NFS.
    • Now it's time to verify the shared folder on client machines.

Disk space and memory requirement

For disk space, 4GB is enough. It shows 2.4GB in my OMV 6.5.0.

The memory usage is 430MB when in idle.

Network, static IP & DNS for internet access

  • Remember to change DNS in the Advanced section. No need to modify anything in /etc/resolv.conf in terminal. You can check that "ping -c 3 1.1.1.1" works but "ping -c 3 google.com" did not.
  • Configure DNS is necessary when I need to install plugins.

apt update warnings

You still have the security repo in /etc/apt/sources.list. That needs to be removed.

Disk usage

  • Method1: Dashboard - File systems (/dev/sda1, /dev/sdb1, ...)
  • Method2: Storage - File systems

Hard drives

Click Storage -> Disks -> Select the disk -> Edit. Choose spindown time from "Disabled" to "20 minutes'.

Multiple SATA drives

RISC-V NAS: BPI-F3 & OpenMediaVault. IDE-to-USB adapter (Molex output) + Molex to SATA adapter + SATA splitter (for 2 SATA disks).

Sharing

  • We need to partition the system disk if we want to create a shared folder on the system drive. shared folder on the system disk.
  • share whole disk (it works)
  • Remember to create a new user (it seems admin is not working for share folders). When I create a new user (Groups = users) after I created a shared folder, the new user automatically appeared in a shared folder Permissions list.
    • No need to create home directory from "Users - Settings".
    • Create a user from "Users - Users". Enter a user name. In the Group attribute, select Users. That is enough.
    • No need to worry from "Users - Groups".
  • Storage - Shared Folders. Create a name.

Where are shared folders

In OpenMediaVault, shared folders are a key functionality around which all services revolve. They are created as subvolumes on BTRFS file systems or simple directories on all other file systems supported by OpenMediaVault.

When you create a shared folder, you select a disk, and then a folder on that disk. If the folder doesn't exist, it is created for you². That's where the shared folder is located.

The actual path of the shared folder can be obtained using the UUID of the shared folder. On my OMV running in Proxmox,

root@omv:~# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   32G  0 disk 
├─sda1   8:1    0   31G  0 part /
├─sda2   8:2    0    1K  0 part 
└─sda5   8:5    0  975M  0 part [SWAP]
sdb      8:16   0  489G  0 disk 
└─sdb1   8:17   0  489G  0 part /srv/dev-disk-by-uuid-9c8dfd73-766f-49c0-acb4-2a26c1c2172c

root@omv:~# ls -l /srv/dev-disk-by-uuid-9c8dfd73-766f-49c0-acb4-2a26c1c2172c/
total 36
-rw------- 1 root root   6144 Oct 19 18:46 aquota.group
-rw------- 1 root root   6144 Oct 19 18:46 aquota.user
drwx------ 2 root root  16384 Oct 18 21:33 lost+found
drwxrwsr-x 2 root users  4096 Oct 19 07:40 OPMShare    <== Share name for a folder

Remove SMB sharing

  • (Necessary?) Plugin - type 'reset' (resetperm) - Install.
  • Step 1: Services - SMB/CIFS - Shares - click one and delete
  • Step 2: Storage - Shared folders - click one and delete.
  • Step 3: Apply the changes.

Note although we remove SMB shares, the Dashboard still shows the disk and its partitions. The Storage still shows the device.

Update

apt-get update && apt-get dist-upgrade && omv-update

omv-release-upgrade

SMART monitoring

After enabling SMART monitoring in OpenMediaVault, you can do the following:

  • View device information: From the Devices tab, you can select a drive and click on the Information button to view detailed information about the drive, including its SMART attributes and status.
  • Configure notifications: You can configure OpenMediaVault to send you email notifications when changes in S.M.A.R.T values are detected. To do this, go to the System tab in the left-hand menu, select the Notification option, and configure your email settings.
  • Schedule tests: From the Scheduled tests tab, you can schedule different types of tests to run on your drives, including short self-tests, long self-tests, conveyance self-tests, and offline immediate tests.

NAS Not seen/visible in local network

Ideally, if we go to the File Manager app -> Network (Windows)/Other Locations (GNOME) we shall see "HOSTNAME -SMB/CIFS" & "HOSTNAME - SSH" items. If we click on "HOSTNAME - SMB/CIFS", it will show the shared folder name.

View free/total space in client

PS. I don't this problem. To view free space, right click on any one of subfolders and choose Properties. It'll show "Free space" (at least on the GNOME file manager).

Unable to show real free/used disk space in SAMBA mounted drives under Windows. So add this line (OMV GUI) to the Extra options-field (bottom of the screen) in 'Edit share' and restart the samba service (systemctl restart smbd.service). It´s a per share command.

dfree command = /usr/local/bin/dfree

Create a file /usr/local/bin/dfree and make it executable.

#!/bin/sh
/bin/df -h $1 | grep sda1 | awk '{print $2" "$4}'
# 458G 241G

OMV-Extras

FileBrowser

  • Step 1: System - Plugins
  • Step 2: Services - File browser. Enable it. Port is 3670. Need to select a Shared folder. Save & OpenUI. Default is admin/admin. We can download/upload/copy/paste/delete/... files, create new files/folders, manage users, through the web interface.
  • The filebrowser cannot even preview png files like a regular file manager in a desktop

aquota.user, aquota.group

You can't remove them because they are in use by the quota service.

Backup configuration

Proxmox

Docker, portainer

Open Media Vault 6 (2023), omv-extras, Docker and Portainer Part 2

QNAP vs Synology

Virtualization Station from QNAP

http://www.qnap.com/event/station/en/virtualization.php

The supported NAS models are listed on http://www.qnap.com/event/station/en/virtualization.php?content=supported

Build a NAS like Synology

build a NAS like Synology 7.2 & Automated Redpill Loader (i18n)

Raspberry Pi

Raspberry Pi NAS

ODroid xu4

Zimablade

  • Power by USB-C.
    • But it is 12V. We need to use the power supply purchased from zimaboard.
    • On the other hand, the USB-C power adapter should not be used in other 5V devices.
    • We can use a third party power adapter that supports 12v usb-c output such as Anker 317 Charger (100W) & Amazon

CasaOS

  • Wiki/guides - https://wiki.casaos.io/en/get-started
  • http://casaos.local/ is not working. I need to manually run sudo apt-get install avahi-daemon. Then it works without rebooting.
    • Currently it supports Debian 11, Ubuntu server 20.04, ... (2024/4)
    • Debian 11 Bullseye's end of life is 2024/7.
    • Debian 11/12 + CasaOS is using 2.9GB. The root partition has 24GB space in total. 7.8G allocated to /dev partition.
  • Tip
    • On the CasaOS dashboard, it can show the power consumption under the CPU. For example, it showed 2W/40C on my Zimablade with a 2.5 HDD attached. PS, playing a video file from CasaOS File browser does not take CPU load or increase power for a low-resolution h264 MP4 file.
    • The power consumption is for CPU only. For example, it shows 2.4W for the CPU but Kill-a-watt shows 5W for the computer (intel NUC7PJYH Pentium J5005, 8th gen, 2017).
    • If I have created a shared folder, I can click "..." and select "Copy Path". The path will look like "/mnt/toshiba500/CasaShare" where toshiba500 is my storage name and CasaShare is my (shared) folder's name. Then on Windows, I can paste "\\casaos.local\CasaShare" in the Windows Explorer to access the folder. On Mac/Linux, I can use "smb://casaos.local/CasaShare" to access the folder.
    • There is no way to set up a SMB password from GUI. So the shared folders can be accessed by anyone by default. SMB Sharing needs to support/enforce authentication. A solution is
      1. sudo nano /etc/samba/smb.casa.conf
      2. Change the line "guest ok = Yes" to "guest ok = No"
      3. Run "sudo smbpasswd -a USERNAME_OS"
      4. Run "sudo service smbd restart"
    • Upgrade a docker app seems to be easy. For example, if the Portainer has a new release, I click the "Settings" on the Portainer app on the CasaOS GUI. On the "Tag", I choose the "Latest" instead of "Stable(2.19.4)". Once I click "Save", it'll update the Portainer container. I do need to use the Portainer GUI or a command line to delete the 2.19.4 image.

Zimaboard

sudo systemctl stop casaos*.service
sudo systemctl status casaos.service
sudo systemctl stop docker.*
sudo systemctl status docker.service

sudo mv /var/lib/docker /mnt/SP512/CasaShare512/
sudo ln -s /mnt/SP512/CasaShare512/docker /var/lib/docker

sudo mv /DATA/AppData /mnt/SP512/CasaShare512/
sudo ln -s /mnt/SP512/CasaShare512/AppData /DATA/AppData

sudo reboot

Custom Appstore

YTDL_OPTIONS='{"writesubtitles":true,"subtitleslangs":["en","-live_chat"],"updatetime":false,"postprocessors":[{"key":"Exec","exec_cmd":"chmod 0664","when":"after_move"},{"key":"FFmpegEmbedSubtitle","already_have_subtitle":false},{"key":"FFmpegMetadata","add_chapters":true}]}'
  • A better solution for the above situation is to Edit the CasaOS docker compose files in CasaOS. The script is on github here made by big-bear-scripts. PS: 1. we need to be in root in order to run the script 2. it won't save the script in the disk.
    • Automatic method: bash -c "$(wget -qLO - https://raw.githubusercontent.com/bigbeartechworld/big-bear-scripts/master/edit-casaos-apps/run.sh)"
    • Manual method:
      • Go to the folder /var/lib/casaos/apps/ to view all installed services/apps/containers
      • Edit the docker-compose file directly from "/var/lib/casaos/apps/sparkling_felix/" if, for example, my container is called "sparkling_felix"
      • Run casaos-cli app-management apply "$service_name" --file="$docker_compose_path" . For example, sudo casaos-cli app-management apply "sparkling_felix" --file=/var/lib/casaos/apps/sparkling_felix/docker-compose.yml. This will refresh the CasaOS GUI.

Backup/migration

NAS, SAMBA share

SAMBA share for multiple users with passwords. Edit this /etc/samba/smb.casa.conf, instead of the smb.conf.

Pogoplug

Basic statistic about Pogoplug E02

See http://archlinuxarm.org/platforms/armv5/pogoplug-v2-pinkgray for hardware specification.

  • architecture: ARMv5te
  • Processor: Marvell Kirkwood 1.2GHz
  • RAM: 256MB
  • 124MB NAND
  • Gigabit ethernet
  • 5W power
  • 4 USB 2.0 connector.

20121105 181258.jpg 20121105 181506.jpg

Install ArchLinux on pogoplug (Debian is better actually)

See the instruction in http://archlinuxarm.org/platforms/armv5/pogoplug-v2-pinkgray for how to install Archlinux on pogoplug (E02). I make a copy below.

killall hbwd
cd /tmp
wget http://jeff.doozan.com/debian/uboot/install_uboot_mtd0.sh
chmod +x install_uboot_mtd0.sh
./install_uboot_mtd0.sh
/sbin/fdisk /dev/sda

At the fdisk prompt, delete old partitions and create a new one:

  • Type o. This will clear out any partitions on the drive.
  • Type p to list partitions. There should be no partitions left.
  • Now type n, then p for primary, 1 for the first partition on the drive, and then press ENTER, accepting default values.
  • Exit by typing w.
wget http://archlinuxarm.org/os/pogoplug/mke2fs
chmod 755 mke2fs
./mke2fs /dev/sda1
mkdir usb
mount /dev/sda1 usb
cd usb
wget http://archlinuxarm.org/os/ArchLinuxARM-armv5te-latest.tar.gz
tar -xzvf ArchLinuxARM-armv5te-*.tar.gz  # This will take a long time
rm ArchLinuxARM-armv5te-*.tar.gz
sync  # Takes a while when using a flash drive. Not in my case however.
cd ..
umount usb
/sbin/reboot

Log back in after your Pogoplug reboots using username root and password root.

At the end, the system is very lean.

[root@alarm ~]# free
             total       used       free     shared    buffers     cached
Mem:        252492      28292     224200          0       4580      14072
-/+ buffers/cache:       9640     242852
Swap:            0          0          0
[root@alarm ~]# df -lh
Filesystem      Size  Used Avail Use% Mounted on
rootfs          7.4G  443M  6.6G   7% /
/dev/root       7.4G  443M  6.6G   7% /
devtmpfs        124M     0  124M   0% /dev
run             124M  224K  124M   1% /run
shm             124M     0  124M   0% /dev/shm
tmpfs           124M     0  124M   0% /tmp
[root@alarm ~]# uname -a
Linux alarm 3.1.10-13-ARCH #1 PREEMPT Mon Aug 20 15:46:18 UTC 2012 armv5tel GNU/Linux
[root@alarm ~]# cat /proc/cpuinfo
Processor	: Feroceon 88FR131 rev 1 (v5l)
BogoMIPS	: 1191.11
Features	: swp half thumb fastmult edsp 
CPU implementer	: 0x56
CPU architecture: 5TE
CPU variant	: 0x2
CPU part	: 0x131
CPU revision	: 1

Hardware	: Marvell SheevaPlug Reference Board
Revision	: 0000
Serial		: 0000000000000000
[root@alarm ~]# cat /proc/cpuinfo
Processor	: Feroceon 88FR131 rev 1 (v5l)
BogoMIPS	: 1191.11
Features	: swp half thumb fastmult edsp 
CPU implementer	: 0x56
CPU architecture: 5TE
CPU variant	: 0x2
CPU part	: 0x131
CPU revision	: 1

Hardware	: Marvell SheevaPlug Reference Board
Revision	: 0000
Serial		: 0000000000000000
[root@alarm ~]# 

After it, follow the instruction on lifehacker and https://wiki.archlinux.org/index.php/DeveloperWiki:usrlib

pacman -Syu --ignore glibc
pacman -Su
mkinitcpio -p linux

To install rsync, use

pacman -S rsync

Unfortunately, I cannot bypass the error

[root@alarm ~]# pacman -Suy rsync
:: Synchronizing package databases...
 core is up to date
 extra is up to date
 community is up to date
 alarm is up to date
 aur is up to date
:: Starting full system upgrade...
resolving dependencies...
looking for inter-conflicts...

Targets (2): glibc-2.16.0-4  rsync-3.0.9-5

Total Installed Size:   34.26 MiB
Net Upgrade Size:       0.61 MiB

Proceed with installation? [Y/n] 
(2/2) checking package integrity                        [#############################] 100%
(2/2) loading package files                             [#############################] 100%
(2/2) checking for file conflicts                       [#############################] 100%
error: failed to commit transaction (conflicting files)
glibc: /lib exists in filesystem
Errors occurred, no packages were upgraded.

Install Debian on pogoplug

See the instruction on http://projects.doozan.com/debian.

  • Find your devices's IP address and connect via SSH:
  • Partition your flash drive with fdisk (or gparted):
fdisk /dev/sda
# Configure partion 1 as Linux (I'd recommend making this at least 512Mb. The default bare-bones installation uses 280Mb.)
# Configure partion 2 as Linux Swap (I used 256MB.  Adjust according to your anticipated memory usage.)
# Set partition 1 active

See http://www.terminally-incoherent.com/blog/2012/09/19/set-up-a-home-linux-server-for-30-with-pogoplug/ for clear explanation of using fdisk.

  • Download and run the Debian Wheezy installer:
cd /tmp
wget http://projects.doozan.com/debian/kirkwood.debian-wheezy.sh
chmod +x kirkwood.debian-wheezy.sh
export PATH=$PATH:/usr/sbin:/sbin
./kirkwood.debian-wheezy.sh
  • Alternatively, you can choose to install Debian Squeeze with the following commands:
cd /tmp
wget http://projects.doozan.com/debian/dockstar.debian-squeeze.sh
chmod +x dockstar.debian-squeeze.sh
export PATH=$PATH:/usr/sbin:/sbin
./dockstar.debian-squeeze.sh

The script will take some time to download the debian images and extract them to your flash drive. The total install time will vary with the speed of your flash drive and your Internet connection. On my system, it takes about 20 minutes. Once it's finished, you can reboot into your new Debian install.

After your device reboots, it may have a different IP address (it's identifying as 'Debian' to the DHCP server now instead of 'Pogoplug').

The default root password in Debian is 'root'. After you've logged in, you should change the root password and configure /etc/apt/sources.list to point to a Debian mirror near you.

passwd
nano /etc/apt/sources.list

After reboot, the debian system is very lean too


root@debian:~# df -h
Filesystem            Size  Used Avail Use% Mounted on
rootfs                3.2G  260M  2.8G   9% /
none                  123M   36K  123M   1% /dev
/dev/sda1             3.2G  260M  2.8G   9% /
tmpfs                 125M     0  125M   0% /lib/init/rw
tmpfs                 125M     0  125M   0% /dev/shm
tmpfs                 125M     0  125M   0% /tmp
root@debian:~# free
             total       used       free     shared    buffers     cached
Mem:        255672      19636     236036          0        816      11104
-/+ buffers/cache:       7716     247956
Swap:       535544          0     535544

After I install LAMP, the memory uses 250MB. However, after I reboot the pogoplug, it reduces to 66MB.

root@debian:~# free
             total       used       free     shared    buffers     cached
Mem:        255672      66076     189596          0       1244      37000
-/+ buffers/cache:      27832     227840
Swap:       535544          0     535544

If I want to add a USB drive, it is safe NOT to insert the 2nd USB drive when the system boot. It is better to insert the 2nd USB drive after the system has booted. In my experience, if I insert the 2nd USB drive when the system boot, the first USB drive will be mounted as /dev/sdb1 but I want the 2nd USB drive mounted as /dev/sdb1.

Install build-essential. Should be fine. See Home automation link below.

Other resources:

Make it more powerful

Backup server (RAID 1)

Crash plan.

Remote file access by AjaXplorer AjaXplorer

Cloud by OpenStack

BitTorrent by Transmission

Note: Must stop the transmission-daemon before modifying the setting.

apt-get install transmission-cli transmission-common transmission-daemon
# stop transmission first before change the setting
/etc/init.d/transmission-daemon stop
nano /etc/transmission-daemon/settings.json
# change “download-dir”, “incomplete-dir”
# change rpc-whitelist to "*" or your remote IP
# change "rpc-username" ,
#        "rpc-password"  (this will then be hashed, so don't worry)
# change "speed-limit-up": 10,
#        "speed-limit-up-enabled": true,
# change upload-limit (KB/s) from 100 to 10
#        upload-limit-enabled from 0 to 1
mkdir /mnt/usb/Downloads
chmod -R 777 /mnt/usb/Downloads
transmission-daemon 

/etc/init.d/transmission-daemon stop

# Remember to shut down transmission before editing the settings.json file

/etc/init.d/transmission-daemon start

Open browser http://hostname:9091/transmission/web

For pirat*, we can download torr* by using (see here)

http://torrents.thepiratebay.se/xxxxxx/My.torrent

So we don't need to download the torrent in our local machine. In fact, we can just right click 'Get this torrent' button and copy the link. Then we can open the url in transmission/web.

Note: the transfer speed from pogoplug to ubuntu is about 5.5MB/s.

SFTP server by Cyberduck

WebDAV by owncloud.org

SAMBA server

So every computer in LAN can access the contents there. On Windows computer, type \\192.168.1.3\ShareFolder, for example.

  • UPnP media server will stream the media content on your Pogoplug to any compatible media player such as the PlayStation 3, Microsoft Xbox 360, and D-Link Boxee Box over your local network.

Email alerts

Using sSMTP; see here.

Print server

Best NAS

Best NAS Hard Drives

Different NAS

TrueNAS

NAS4Free vs FreeNAS vs Amahi vs OpenMediaVault

NAS4Free

  • NAS4Free from pcworld.com.
  • FreeNAS and UPnP setups from homemultimedianetwork.com.
  • A non-English youtube video demonstrates installing NAS4Free on Virtualbox (it works as I tested). The important thing is the NAS4Free is based on BSD. So we should select BSD & 64-bit instead Linux. I am using NAS4Free-x64-LivdCD-9.3.0.2.1349.iso. N.B. NAS4Free does not take much space as, saying, Ubuntu. See the next screenshot.

NAS4Free64.png

  • WebGUI interface and setup.
  • After I enable ssh and allows root login, I can see the default shell is tcsh. See the document in here.
  • If we have added IDE disks from virtual machine setting, we can add them using the web management. To do that, we need to Add disk by clicking '+' sign, apply changes, format disks, and mount disks (mount point name can be 'Data1', 'Data2', ...). These disks will be available via /mnt/Data1 or /mnt/Data2. See the document in here.
  • Lots of services: CIFS/SMB (Samba v4.x), FTP, NFS, TFTP, AFP, RSYNC, Unison, iSCSI (initiator and target), HAST, CARP, Bridge, UPnP, Webserver, and Bittorent.
  • UPnP service works like a charm. Note that I need to check the checkbox in 'Enable' (on the topright corner) for it to work. On the client side, I use ubuntu's VLC (v2.1.4) to test. In VLC, click View -> Playlist ('Ctrl+l') and then select Local Network -> Universal Plug 'n' Play. I have tested streaming mp3 and mp4 files. For Android devices, we can try the BubbleUPnP app.
  • How do I stream photos? Photos do not show up on VLC or Android UPnP software like BubbleUPnP, AirWire. The trick is to click Administrative Webgui url link and then click rebuild/update database. After the fix, VLC can play photos as video (10 seconds for each) automatically and BubbleUPnP can play the photos too (users decide how long to stay on one image).

FreeNAS

NAS hard disks

NAS4Free distribution

NextCloud

CentosConOnline.png

Cockpit

Turning Proxmox Into a Pretty Good NAS

Unraid