
рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ , NAS рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИред
рдирд┐рд░реАрдХреНрд╖рдг
рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкреВрд▓ рдХреЗ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдХреА рдЬрд╛рдВрдЪ рдЕрд╡рд╢реНрдп рдХрд░реЗрдВ:
zpool status -v
рдкреВрд▓ рдФрд░ рдЗрд╕рдореЗрдВ рд╕рднреА рдбрд┐рд╕реНрдХ рдСрдирд▓рд╛рдИрди рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдкрд┐рдЫрд▓реЗ рдЪрд░рдг рдореЗрдВ рд╕рдм рдХреБрдЫ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдпрд╛ рдЖрдк рдЦреБрдж рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рд╕реБрд╡рд┐рдзрд╛
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдкреНрд░рдмрдВрдзрди рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдпрджрд┐ рдЖрдкрдиреЗ рд╢реБрд░реБрдЖрдд рд╕реЗ рд╣реА рдРрд╕рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ред
рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:
- SSH рд╕рд░реНрд╡рд░:
apt-get install openssh-server
ред рдпрджрд┐ рдЖрдк SSH рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рд▓рд┐рдирдХреНрд╕ рдкрд░ NAS рдХрд░рдирд╛ рдмрд╣реБрдд рдЬрд▓реНрджреА рд╣реИ рдЖрдк рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдлрд┐рд░ рдХрд┐рд╕реА рдПрдХ рдореИрдиреБрдЕрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред - tmux рдпрд╛ рд╕реНрдХреНрд░реАрди :
apt-get install tmux
ред SSH рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЙрдЧ рдЗрди рдХрд░рддреЗ рд╕рдордп рд╕рддреНрд░ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдХрдИ рд╡рд┐рдВрдбреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
SSH рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ SSH рдХреЛ рд░реВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЙрдЧ рдЗрди рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдЗрдирдкреБрдЯ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрдХреНрд╖рдо рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдЗрд╕реЗ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ):
zfs create rpool/home/user adduser user cp -a /etc/skel/.[!.]* /home/user chown -R user:user /home/user
рджреВрд░рд╕реНрде рдкреНрд░рд╢рд╛рд╕рди рдХреЗ рд▓рд┐рдП, рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рдиреНрдпреВрдирддрдо рд╣реИред
рдлрд┐рд░ рднреА, рдЬрдмрдХрд┐ рдЖрдкрдХреЛ рдХреАрдмреЛрд░реНрдб рдФрд░ рдореЙрдирд┐рдЯрд░ рдХреЛ рдХрдиреЗрдХреНрдЯ рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд░реНрдиреЗрд▓ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╕рдордп рдЖрдкрдХреЛ рд░реАрдмреВрдЯ рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдФрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╕рдм рдХреБрдЫ рд▓реЛрдб рд╣реЛрдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рд╡рд░реНрдЪреБрдЕрд▓ KVM рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реИ, рдЬреЛ IME рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд╡рд╣рд╛рдВ рдПрдХ рдХрдВрд╕реЛрд▓ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЗрд╕реЗ рдЬрд╛рд╡рд╛ рдПрдкреНрд▓реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИред
рд╕рдорд╛рдпреЛрдЬрди
рдХреИрд╢ рдХреА рддреИрдпрд╛рд░реА
рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдЖрдкрдХреЛ рдпрд╛рдж рд╣реИ, рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ L2ARC рдХреЗ рддрд╣рдд рдПрдХ рдЕрд▓рдЧ SSD рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрднреА рддрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди "рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП" рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд╡реИрдХрд▓реНрдкрд┐рдХ, рд▓реЗрдХрд┐рди рдЗрд╕ SSD рдХреЛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рднрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреА рдЬрд╛рддреА рд╣реИ (рд╕реИрдорд╕рдВрдЧ EVO рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ blkdiscard рдХреЗ рдмрд╛рдж рд╢реВрдиреНрдп рд╕реЗ рднрд░рд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рд╕рднреА SSD рдкрд░ рд╡реИрд╕реЗ рднреА рдирд╣реАрдВ):
dd if=/dev/urandom of=/dev/disk/by-id/ata-Samsung_SSD_850_EVO bs=4M && blkdiscard /dev/disk/by-id/ata-Samsung_SSD_850_EVO
рд▓реЙрдЧ рд╕рдВрдкреАрдбрд╝рди рдЕрдХреНрд╖рдо рдХрд░рдирд╛
рдЬреЗрдбрдПрдлрдПрд╕ рдкрд░, рд╕рдВрдкреАрдбрд╝рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЧрдЬрд╝рд┐рдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЙрдЧ рд╕рдВрдкреАрдбрд╝рди рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╢рд╛рдирджрд╛рд░ рд╣реЛрдЧрд╛ред
рдмрдВрдж рдХрд░реЗрдВ:
for file in /etc/logrotate.d/* ; do if grep -Eq "(^|[^#y])compress" "$file" ; then sed -i -r "s/(^|[^#y])(compress)/\1#\2/" "$file" fi done
рд╕рд┐рд╕реНрдЯрдо рдЕрдкрдбреЗрдЯ
рдпрд╣рд╛рдБ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ:
apt-get dist-upgrade --yes reboot
рдПрдХ рдирдП рд░рд╛рдЬреНрдп рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдиреИрдкрд╢реЙрдЯ рдмрдирд╛рдирд╛
рд░реАрдмреВрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдирдИ рдХрд╛рд░реНрдпрд╢реАрд▓ рд╕реНрдерд┐рддрд┐ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рд╕реНрдиреИрдкрд╢реЙрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛:
zfs destroy rpool/ROOT/debian@install zfs snapshot rpool/ROOT/debian@install
рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рд╕рдВрдЧрдарди
SLOG рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд╛рдЬрди
рд╕рд╛рдорд╛рдиреНрдп рдЬреЗрдбрдПрдлрдПрд╕ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдкрд╣рд▓реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдПрд╕рдПрд▓рдУрдЬреА рдХреЛ рдПрд╕рдПрд╕рдбреА рдкрд░ рд░рдЦрд╛ рдЬрд╛рдПред
рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ SLOG рджреЛ SSDs рдкрд░ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╣реИ: рдЗрд╕рдХреЗ рд▓рд┐рдП, LUKS-XTS рдкрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдкреНрд░рддреНрдпреЗрдХ SSD рдХреЗ рдЪреМрдереЗ рдЦрдВрдб рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдмрдирд╛рдП рдЬрд╛рдПрдВрдЧреЗ:
dd if=/dev/urandom of=/etc/keys/slog.key bs=1 count=4096 cryptsetup --verbose --cipher "aes-xts-plain64:sha512" --key-size 512 --key-file /etc/keys/slog.key luksFormat /dev/disk/by-id/ata-Samsung_SSD_850_PRO-part4 cryptsetup --verbose --cipher "aes-xts-plain64:sha512" --key-size 512 --key-file /etc/keys/slog.key luksFormat /dev/disk/by-id/ata-Micron_1100-part4 echo "slog0_crypt1 /dev/disk/by-id/ata-Samsung_SSD_850_PRO-part4 /etc/keys/slog.key luks,discard" >> /etc/crypttab echo "slog0_crypt2 /dev/disk/by-id/ata-Micron_1100-part4 /etc/keys/slog.key luks,discard" >> /etc/crypttab
L2ARC рдФрд░ рд╕реНрд╡реИрдк рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд╛рдЬрди
рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рд╕реНрд╡реИрдк рдФрд░ l2arc рдХреЗ рддрд╣рдд рд╡рд┐рднрд╛рдЬрди рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
sgdisk -n1:0:48G -t1:8200 -c1:part_swap -n2::196G -t2:8200 -c2:part_l2arc /dev/disk/by-id/ata-Samsung_SSD_850_EVO
рд╕реНрд╡реИрдк рд╡рд┐рднрд╛рдЬрди рдФрд░ L2ARC рдХреЛ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдХреБрдВрдЬреА рдкрд░ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рд░рд┐рдмреВрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЙрдиреНрд╣реЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдирд╛ рд╣рдореЗрд╢рд╛ рд╕рдВрднрд╡ рд╣реИред
рдЗрд╕рд▓рд┐рдП, рдХреНрд░рд┐рдкреНрдЯреИрдм рдореЗрдВ, рд╕рд╛рджреЗ рдореЛрдб рдореЗрдВ рд╡рд┐рднрд╛рдЬрди рдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ / рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрдВрдХреНрддрд┐ рд▓рд┐рдЦреА рдЧрдИ рд╣реИ:
echo swap_crypt /dev/disk/by-id/ata-Samsung_SSD_850_EVO-part1 /dev/urandom swap,cipher=aes-xts-plain64:sha512,size=512 >> /etc/crypttab echo l2arc_crypt /dev/disk/by-id/ata-Samsung_SSD_850_EVO-part2 /dev/urandom cipher=aes-xts-plain64:sha512,size=512 >> /etc/crypttab
рдлрд┐рд░ рдЖрдкрдХреЛ рдбреЗрдореЙрди рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдФрд░ рд╕реНрд╡реИрдк рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
echo 'vm.swappiness = 10' >> /etc/sysctl.conf sysctl vm.swappiness=10 systemctl daemon-reload systemctl start systemd-cryptsetup@swap_crypt.service echo /dev/mapper/swap_crypt none swap sw,discard 0 0 >> /etc/fstab swapon -av
рдХреНрдпреЛрдВрдХрд┐ рдПрд╕рдПрд╕рдбреА рдкрд░ swapiness
рдХрд╛ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, swapiness
рдкреИрд░рд╛рдореАрдЯрд░, рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ 60 рд╣реИ, рдХреЛ 10 рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
L2ARC рдХрд╛ рдЕрднреА рдЗрд╕ рд╕реНрддрд░ рдкрд░ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрдиреБрднрд╛рдЧ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рддреИрдпрд╛рд░ рд╣реИ:
$ ls /dev/mapper/ control l2arc_crypt root_crypt1 root_crypt2 slog0_crypt1 slog0_crypt2 swap_crypt tank0_crypt0 tank0_crypt1 tank0_crypt2 tank0_crypt3
рддрд╛рд▓ рдЯреИрдВрдХ
tank0
рдкреВрд▓ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, tank1
рдХреЛ рд╕рд╛рджреГрд╢реНрдп рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рдорд╛рди рд╡рд┐рднрд╛рдЬрди рдирд╣реАрдВ рдмрдирд╛рдиреЗ рдФрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдкреВрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рд╡рд┐рднрд╛рдЬрди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреА рд╣реИ:
рдЕрдм, рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЖрдкрдХреЛ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреВрд▓ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
./create_crypt_pool.sh zpool create -o ashift=12 -O atime=off -O compression=lz4 -O normalization=formD tank0 raidz1 /dev/disk/by-id/dm-name-tank0_crypt*
ashift=12
рдкреИрд░рд╛рдореАрдЯрд░ рдкрд░ рдиреЛрдЯреНрд╕ рдХреЗ рд▓рд┐рдП, рдореЗрд░реЗ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдФрд░ рдЙрди рдкрд░ рдЯрд┐рдкреНрдкрдгреА рджреЗрдЦреЗрдВред
рдкреВрд▓ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ SSD рдкрд░ рдЕрдкрдирд╛ рд▓реЙрдЧ рдЖрдЙрдЯ рдХрд┐рдпрд╛:
zpool add tank0 log mirror /dev/disk/by-id/dm-name-slog0_crypt1 /dev/disk/by-id/dm-name-slog0_crypt2
рднрд╡рд┐рд╖реНрдп рдореЗрдВ, OMV рд╕реНрдерд╛рдкрд┐рдд рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреЗ рд╕рд╛рде, GUI рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреВрд▓ рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛:

рдкреВрд▓ рдореЗрдВ рдкреВрд▓ рдЖрдпрд╛рдд рдФрд░ рдСрдЯреЛ-рдорд╛рдЙрдВрдЯ рд╡реЙрд▓реНрдпреВрдо рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдирд╛
рдСрдЯреЛ-рдорд╛рдЙрдВрдЯ рдкреВрд▓ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧрд╛рд░рдВрдЯреА рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдВ:
rm /etc/zfs/zpool.cache systemctl enable zfs-import-scan.service systemctl enable zfs-mount.service systemctl enable zfs-import-cache.service
рдЗрд╕ рд╕реНрддрд░ рдкрд░, рдбрд┐рд╕реНрдХ рд╕рдмрд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИред
рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо
рдПрдирдПрдПрд╕ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рдиреАрдВрд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдУрдПрдорд╡реА рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓рд╛ рдХрджрдо рд╣реИред
OMV рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
OMV рдХреЛ рдПрдХ рдбрд┐рдмреЗрдЯ рдкреИрдХреЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред
add_repo.sh
рд╕реНрдХреНрд░рд┐рдкреНрдЯ OMV Arrakis рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ /etc/apt/ sources.list.d
add_repo.sh
рдЬреЛрдбрд╝рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдмреИрдЪ рд╕рд┐рд╕реНрдЯрдо рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рджреЗрдЦрддрд╛ рд╣реИред
add_repo.sh cat <<EOF >> /etc/apt/sources.list.d/openmediavault.list deb http://packages.openmediavault.org/public arrakis main
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдореВрд▓ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ, рднрд╛рдЧреАрджрд╛рд░ рднрдВрдбрд╛рд░ рд╢рд╛рдорд┐рд▓ рд╣реИред
рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЖрджреЗрд╢ рдЪрд▓рд╛рдиреЗ рд╣реЛрдВрдЧреЗред
рдУрдПрдорд╡реА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрджреЗрд╢ред ./add_repo.sh export LANG=C export DEBIAN_FRONTEND=noninteractive export APT_LISTCHANGES_FRONTEND=none apt-get update apt-get --allow-unauthenticated install openmediavault-keyring apt-get update apt-get --yes --auto-remove --show-upgraded \ --allow-downgrades --allow-change-held-packages \ --no-install-recommends \ --option Dpkg::Options::="--force-confdef" \ --option DPkg::Options::="--force-confold" \ install postfix openmediavault
OMV рд╕реНрдерд╛рдкрд┐рддред рдпрд╣ рдЕрдкрдиреЗ рдХрд░реНрдиреЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж рд░рд┐рдмреВрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред
рд░рд┐рдмреВрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, OpenMediaVault рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреЛрд░реНрдЯ 80 рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛ (IP рдкрддреЗ рджреНрд╡рд╛рд░рд╛ NAS рдкрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд░ рдЬрд╛рдПрдВ):

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо / рдкрд╛рд╕рд╡рд░реНрдб admin/openmediavault
ред
OMV рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдзрд┐рдХрд╛рдВрд╢ рд╡рд┐рдиреНрдпрд╛рд╕ WEB-GUI рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдПрдЧрд╛ред
рдПрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
рдЕрдм рдЖрдкрдХреЛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ HTTPS рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП WEB рдПрдбрдорд┐рдирд┐рд╕реНрдЯреНрд░реЗрдЯрд░ рдХрд╛ рдкрд╛рд╕рд╡рд░реНрдб рдмрджрд▓рдиреЗ рдФрд░ NAS рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдкрд╛рд╕рд╡рд░реНрдб рдЯреИрдм рдкрд░ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ "рд╕рд┐рд╕реНрдЯрдо-> рд╕рд╛рдорд╛рдиреНрдп рд╕реЗрдЯрд┐рдВрдЧреНрд╕-> рд╡реЗрдм рдкреНрд░рд╢рд╛рд╕рдХ рдкрд╛рд╕рд╡рд░реНрдб" ред
рдЯреИрдм рдкрд░ рдПрдХ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "рд╕рд┐рд╕реНрдЯрдо-> рдкреНрд░рдорд╛рдг рдкрддреНрд░-> рдПрд╕рдПрд╕рдПрд▓", "рдРрдб-> рдХреНрд░рд┐рдПрдЯ" рдЪреБрдиреЗрдВ ред
рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдЙрд╕реА рдЯреИрдм рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:

рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж, "рд╕рд┐рд╕реНрдЯрдо-> рд╕рд╛рдорд╛рдиреНрдп рд╕реЗрдЯрд┐рдВрдЧреНрд╕" рдЯреИрдм рдкрд░, "рд╕рдХреНрд╖рдо рдПрд╕рдПрд╕рдПрд▓ / рдЯреАрдПрд▓рдПрд╕" рдЪреЗрдХрдмреЙрдХреНрд╕ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ ред
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреВрд░реНрдг рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг OMV рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред
рдЕрдм рдЖрдкрдХреЛ 443 рдХреЛ рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП OMV рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдпрд╛ рдмреНрд░рд╛рдЙрдЬрд░ рдореЗрдВ рдЖрдИрдкреА рдореЗрдВ https://
рдкреНрд░реАрдлрд┐рдХреНрд╕ рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдпрджрд┐ рдЖрдк рдЯреИрдм "рд╕рд┐рд╕реНрдЯрдо-> рд╕рд╛рдорд╛рдиреНрдп рд╕реЗрдЯрд┐рдВрдЧреНрд╕" рдкрд░ рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗ, рддреЛ рдЖрдкрдХреЛ "рдлреЛрд░реНрд╕ рдПрд╕рдПрд╕рдПрд▓ / рдЯреАрдПрд▓рдПрд╕" рдЪреЗрдХрдмреЙрдХреНрд╕ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдкреЛрд░реНрдЯ 80 рдФрд░ 443 рдХреЛ 10080 рдФрд░ 10443 рдореЗрдВ рдмрджрд▓реЗрдВ ред
рдФрд░ рдирд┐рдореНрди рдкрддреЗ рдкрд░ рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ: https://IP_NAS:10443
ред
рдкреЛрд░реНрдЯ рдмрджрд▓рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкреЛрд░реНрдЯ 80 рдФрд░ 443 рдирдЧрдиреЗрдХреНрд╕-рд░рд┐рд╡рд░реНрд╕-рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рд╕рд╛рде рдбреЙрдХ рдХрдВрдЯреЗрдирд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
рдкреНрд░рд╛рдердорд┐рдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕
рдиреНрдпреВрдирддрдо рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдЬреЛ рдкрд╣рд▓реЗ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП:
- рдЯреИрдм рдкрд░ "рд╕рд┐рд╕реНрдЯрдо-> рджрд┐рдирд╛рдВрдХ рдФрд░ рд╕рдордп" рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдорд╛рди рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ рдФрд░ рдПрдирдЯреАрдкреА рд╕рд░реНрд╡рд░ рд╕реЗрдЯ рдХрд░реЗрдВред
- рдЯреИрдм рдкрд░ "рд╕рд┐рд╕реНрдЯрдо-> рдирд┐рдЧрд░рд╛рдиреА" рдкреНрд░рджрд░реНрд╢рди рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИред
- рдЯреИрдм "рд╕рд┐рд╕реНрдЯрдо-> рдПрдирд░реНрдЬреА рдореИрдиреЗрдЬрдореЗрдВрдЯ" рдкрд░ рдпрд╣ рд╕рдВрднрд╡рдд: "рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ" рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ рддрд╛рдХрд┐ рдУрдПрдорд╡реА рдкреНрд░рд╢рдВрд╕рдХреЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рди рдХрд░реЗред
рдиреЗрдЯрд╡рд░реНрдХ
рдпрджрд┐ рджреВрд╕рд░рд╛ NAS рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЕрднреА рддрдХ рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ, рддреЛ рдЗрд╕реЗ рд░рд╛рдЙрдЯрд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВред
рддреЛ:
- "рд╕рд┐рд╕реНрдЯрдо-> рдиреЗрдЯрд╡рд░реНрдХ" рдЯреИрдм рдкрд░, рд╣реЛрд╕реНрдЯ рдирд╛рдо рдХреЛ "рдПрдирдПрдПрд╕" (рдпрд╛ рдЬреЛ рднреА рдЖрдкрдХреЛ рдкрд╕рдВрдж рд╣реИ) рд╕реЗрдЯ рдХрд░реЗрдВред
- рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЪрд┐рддреНрд░ рдореЗрдВ рджрд┐рдЦрд╛рдП рдЧрдП рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд▓рд┐рдП рдмреЙрдиреНрдбрд┐рдВрдЧ рд╕реЗрдЯ рдХрд░реЗрдВ: "рд╕рд┐рд╕реНрдЯрдо-> рдиреЗрдЯрд╡рд░реНрдХ-> рдЗрдВрдЯрд░рдлреЗрд╕- > рдРрдб-> рдмреЙрдиреНрдб" ред
- рдЯреИрдм рдкрд░ рдЖрд╡рд╢реНрдпрдХ рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдирд┐рдпрдо рдЬреЛрдбрд╝реЗрдВ "рд╕рд┐рд╕реНрдЯрдо-> рдиреЗрдЯрд╡рд░реНрдХ-> рдлрд╝рд╛рдпрд░рд╡реЙрд▓" ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, SSH рдХреЗ рд▓рд┐рдП рдкреЛрд░реНрдЯреНрд╕ 10443, 10080, 443, 80, 22 рддрдХ рдкрд╣реБрдВрдЪ рдФрд░ ICMP рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ / рднреЗрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред

рдирддреАрдЬрддрди, рд╕рдВрдмрдВрдз рдореЗрдВ рдЗрдВрдЯрд░рдлреЗрд╕ рджрд┐рдЦрд╛рдИ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреЛ рд░рд╛рдЙрдЯрд░ рдХреЛ рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦреЗрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдПрдХ рдЖрдИрдкреА рдкрддрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдЧрд╛:

рдпрджрд┐ рд╡рд╛рдВрдЫрд┐рдд рд╣реИ, рддреЛ рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдПрд╕рдПрд╕рдмреА рдХреЛ рд╡реЗрдм GUI рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ:

рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдФрд░ рдореЙрдбреНрдпреВрд▓
рдЯреИрдм рдкрд░ "рд╕рд┐рд╕реНрдЯрдо-> рдЕрдкрдбреЗрдЯ рдкреНрд░рдмрдВрдзрди-> рд╕реЗрдЯрд┐рдВрдЧ" "рд╕рдореБрджрд╛рдп рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдЕрдкрдбреЗрдЯ " рдЪрд╛рд▓реВ рдХрд░реЗрдВред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, OMV рдПрдХреНрд╕рдЯреНрд░рд╛ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдЬреЛрдбрд╝реЗрдВред
рдпрд╣ рдмрд╕ рдкреНрд▓рдЧрдЗрди рдпрд╛ рдкреИрдХреЗрдЬ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдордВрдЪ рдкрд░ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
"рд╕рд┐рд╕реНрдЯрдо-> рдкреНрд▓рдЧрдЗрдиреНрд╕" рдкреГрд╖реНрда рдкрд░ рдЖрдкрдХреЛ "рдУрдкрдирдореАрдбрд┐рдпрд╛рдореВрд▓реНрдЯ-рдСрд╕реНрд╡реЗрдХреНрд╕реНрдЯреНрд░рд╛рд╕реЙрд░реНрдЧ" рдкреНрд▓рдЧрдЗрди рдЦреЛрдЬрдиреЗ рдФрд░ рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╕рд┐рд╕реНрдЯрдо рдореЗрдиреВ рдореЗрдВ "рдУрдПрдорд╡реА-рдПрдХреНрд╕реНрдЯреНрд░рд╛" рдЖрдЗрдХрди рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ (рдЗрд╕реЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред
рд╡рд╣рд╛рдВ рдЬрд╛рдПрдВ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ:
- OMV-Extras.orgред рдПрдХ рд╕реНрдерд┐рд░ рднрдВрдбрд╛рд░ рдЬрд┐рд╕рдореЗрдВ рдХрдИ рдкреНрд▓рдЧрдЗрдиреНрд╕ рд╣реЛрддреЗ рд╣реИрдВред
- OMV-Extras.org рдЯреЗрд╕реНрдЯрд┐рдВрдЧред рдЗрд╕ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рдХреБрдЫ рдкреНрд▓рдЧрдЗрдиреНрд╕ рд╕реНрдерд┐рд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВред
- рдбреЙрдХрд░ рд╕реАрдИред рджрд░рдЕрд╕рд▓, рдбреЙрдХрд░ред
рдЯреИрдм рдкрд░ "рд╕рд┐рд╕реНрдЯрдо-> OMV рдПрдХреНрд╕рдЯреНрд░рд╛-> рдХрд░реНрдиреЗрд▓" рдЖрдк рдЕрдкрдиреА рдЬрд░реВрд░рдд рдХрд╛ рдХрд░реНрдиреЗрд▓ рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ Proxmox рд╕реЗ рдХрд░реНрдиреЗрд▓ рд╢рд╛рдорд┐рд▓ рд╣реИ (рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдЗрдВрд╕реНрдЯреЙрд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрднреА рддрдХ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ:

рдЖрд╡рд╢реНрдпрдХ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ ( рдЗрдЯреИрд▓рд┐рдХ рдореЗрдВ рдмреЛрд▓реНрдб рдмрд┐рд▓реНрдХреБрд▓ рдЖрд╡рд╢реНрдпрдХ - рд╡реИрдХрд▓реНрдкрд┐рдХ, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ):
рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреА рд╕реВрдЪреАред- openmediavault-apttoolред рдмреИрдЪ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреНрдпреВрдирддрдо рдЬреАрдпреВрдЖрдИред "рд╕реЗрд╡рд╛рдПрдБ-> Apttool" рдЬреЛрдбрд╝рддрд╛ рд╣реИред
- openmediavault-anacronред рдПрдХ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдЕрдиреБрд╕реВрдЪрдХ рдХреЗ рд╕рд╛рде рдЬреАрдпреВрдЖрдИ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред "рд╕рд┐рд╕реНрдЯрдо-> рдПрдирд╛рдХреНрд░реЙрди" рдЬреЛрдбрд╝рддрд╛ рд╣реИред
- openmediavault-рдмреИрдХрдЕрдкред рднрдВрдбрд╛рд░рдг рдореЗрдВ рдмреИрдХрдЕрдк рдкреНрд░рдгрд╛рд▓реА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдПрдХ рдкреЗрдЬ рдЬреЛрдбрд╝рддрд╛ рд╣реИ "рд╕рд┐рд╕реНрдЯрдо-> рдмреИрдХрдЕрдк" ред
- openmediavault-diskstatsред рдбрд┐рд╕реНрдХ рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдЖрдВрдХрдбрд╝реЗ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
- openmediavault-dnsmasq рдЖрдкрдХреЛ NAS рдкрд░ DNS рд╕рд░реНрд╡рд░ рдФрд░ DHCP рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдПрдХ рд░рд╛рдЙрдЯрд░ рдкрд░ рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ, рдореБрдЭреЗ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
- openmediavault-docker-gui ред рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░ рдкреНрд░рдмрдВрдзрди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ред "рд╕реЗрд╡рд╛-> рдбреЙрдХрдЯрд░" рдЬреЛрдбрд╝рддрд╛ рд╣реИред
- openmediavault-ldap LDAP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдердиред "рдЕрдзрд┐рдХрд╛рд░ рдкреНрд░рдмрдВрдзрди -> рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗрд╡рд╛" рдЬреЛрдбрд╝рддрд╛ рд╣реИред
- openmediavault-letencrypt ред GUI рд╕реЗ рдПрдирдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдердиред рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдирдЧреНрдиреЗрдХреНрд╕-рд░рд┐рд╡рд░реНрд╕-рдкреНрд░реЙрдХреНрд╕реА рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдПрдореНрдмреЗрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
- openmediavault-luksenc рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди ред LUKS рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рд╕рдорд░реНрдердиред рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдбрд┐рд╕реНрдХ рдУрдПрдорд╡реА рдЗрдВрдЯрд░рдлреЗрд╕ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗред "рд╕рдВрдЧреНрд░рд╣рдг-> рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди" рдЬреЛрдбрд╝рддрд╛ рд╣реИред
- openmediavault-nut ред рдпреВрдкреАрдПрд╕ рдХрд╛ рд╕рдорд░реНрдердиред " рд╕реЗрд╡рд╛- > рдпреВрдкреАрдПрд╕" рдЬреЛрдбрд╝рддрд╛ рд╣реИред
- openmediavault-omvextrasorg рдУрдПрдорд╡реА рдПрдХреНрд╕рдЯреНрд░рд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
- openmediavault-resetpermsред рдЖрдкрдХреЛ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЛ рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рдФрд░ рд╕рд╛рдЭрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдкрд░ рдкрд╣реБрдВрдЪ рдирд┐рдпрдВрддреНрд░рдг рд╕реВрдЪреА рд░реАрд╕реЗрдЯ рдХрд░рдиреЗ рджреЗрддрд╛ рд╣реИред "рдкреНрд░рд╡реЗрд╢ рдирд┐рдпрдВрддреНрд░рдг -> рд╕рд╛рдорд╛рдиреНрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБ -> рд░реАрд╕реЗрдЯ рдЕрдиреБрдорддрд┐рдпрд╛рдБ" рдЬреЛрдбрд╝рддрд╛ рд╣реИред
- openmediavault рдорд╛рд░реНрдЧред рд░реВрдЯрд┐рдВрдЧ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдкреНрд▓рдЧрдЗрдиред "рд╕рд┐рд╕реНрдЯрдо-> рдиреЗрдЯрд╡рд░реНрдХ-> рд╕реНрдЯреЗрдЯрд┐рдХ рд░реВрдЯ" рдЬреЛрдбрд╝рддрд╛ рд╣реИред
- openmediavault-рд╕рд┐рдорд▓рд┐рдВрдХред рдкреНрд░рддреАрдХрд╛рддреНрдордХ рд▓рд┐рдВрдХ рдмрдирд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдкреГрд╖реНрда рдХреЛ "рд╕реЗрд╡рд╛-> рдкреНрд░рддреАрдХ" рдЬреЛрдбрд╝рддрд╛ рд╣реИред
- openmediavault-unionfilesystemsред UnionFS рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрд╛рдо рдЖ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдбреЙрдХрдЯрд░ рдПрдХ рдмреИрдХреЗрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ ZFS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред "рд╕рдВрдЧреНрд░рд╣рдг-> рд╕рдВрдШ рдлрд╛рдЗрд▓рд╕рд┐рд╕реНрдЯрдо" рдЬреЛрдбрд╝рддрд╛ рд╣реИред
- openmediavault-virtualbox ред рдпрд╣ GUI рдореЗрдВ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдкреНрд░рдмрдВрдзрди рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
- openmediavault-zfs ред рдкреНрд▓рдЧрдЗрди OpenMediaVault рдореЗрдВ ZFS рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рддрд╛ рд╣реИред рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж, "рд╕рдВрдЧреНрд░рд╣рдг-> ZFS" рдкреГрд╖реНрда рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред
рдбрд┐рд╕реНрдХ
рд╕рднреА рдбрд┐рд╕реНрдХ рдЬреЛ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдУрдПрдорд╡реА рджрд┐рдЦрд╛рдИ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред "рд╕рдВрдЧреНрд░рд╣рдг-> рдбрд┐рд╕реНрдХ" рдЯреИрдм рдХреЛ рджреЗрдЦрдХрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВред рдпрджрд┐ рд╕рднреА рдбрд┐рд╕реНрдХ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рд╕реНрдХреИрди рдЪрд▓рд╛рдПрдВред

рд╡рд╣рд╛рдВ, рд╕рднреА HDD рдкрд░, рд▓реЗрдЦрди рдХреИрд╢рд┐рдВрдЧ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рд╕реВрдЪреА рд╕реЗ рдбрд┐рд╕реНрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдФрд░ "рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ)ред
рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╕рднреА рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдЕрдиреБрднрд╛рдЧ "рд╕рдВрдЧреНрд░рд╣рдг-> рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди" рдЯреИрдм рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣реЗ рд╣реИрдВ:

рдЕрдм рдпрд╣ SMART рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ, рдЬреЛ рдмрдврд╝рддреА рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдХреЗ рд╕рд╛рдзрди рдХреЗ рд░реВрдк рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
- "рд╕рдВрдЧреНрд░рд╣рдг-> рд╕реНрдорд╛рд░реНрдЯ-> рд╕реЗрдЯрд┐рдВрдЧреНрд╕" рдЯреИрдм рдкрд░ рдЬрд╛рдПрдВ ред рд╕реНрдорд╛рд░реНрдЯ рдЪрд╛рд▓реВ рдХрд░реЗрдВред
- рдЙрд╕реА рдЬрдЧрд╣ рдореЗрдВ, рдбрд┐рд╕реНрдХ рдХреЗ рддрд╛рдкрдорд╛рди рд╕реНрддрд░ (рдорд╣рддреНрд╡рдкреВрд░реНрдг, рдЖрдорддреМрд░ рдкрд░ 60 рд╕реА, рдФрд░ рдбрд┐рд╕реНрдХ рдХрд╛ рдЗрд╖реНрдЯрддрдо рддрд╛рдкрдорд╛рди рд╢рд╛рд╕рди 15-45 рд╕реА) рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред
- "рд╕рдВрдЧреНрд░рд╣рдг-> рд╕реНрдорд╛рд░реНрдЯ-> рдбрд┐рд╡рд╛рдЗрд╕" рдЯреИрдм рдкрд░ рдЬрд╛рдПрдВ ред рдкреНрд░рддреНрдпреЗрдХ рдбреНрд░рд╛рдЗрд╡ рдХреЗ рд▓рд┐рдП рдирд┐рдЧрд░рд╛рдиреА рдЪрд╛рд▓реВ рдХрд░реЗрдВред

- "рд╕рдВрдЧреНрд░рд╣рдг-> рд╕реНрдорд╛рд░реНрдЯ-> рдЕрдиреБрд╕реВрдЪрд┐рдд рдкрд░реАрдХреНрд╖рдг" рдЯреИрдм рдкрд░ рдЬрд╛рдПрдВ ред рдкреНрд░рддреНрдпреЗрдХ рдбрд┐рд╕реНрдХ рдХреЗ рд▓рд┐рдП рджрд┐рди рдореЗрдВ рдПрдХ рдмрд╛рд░ рд▓рдШреБ рдЖрддреНрдо-рдкрд░реАрдХреНрд╖рдг рдФрд░ рдорд╣реАрдиреЗ рдореЗрдВ рдПрдХ рдмрд╛рд░ рдПрдХ рд▓рдВрдмрд╛ рдЖрддреНрдо-рдкрд░реАрдХреНрд╖рдг рдЬреЛрдбрд╝реЗрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рддрд╛рдХрд┐ рд╕реНрд╡-рдкрд░реАрдХреНрд╖рдг рдЕрд╡рдзрд┐ рдУрд╡рд░рд▓реИрдк рди рд╣реЛред

рдЗрд╕ рдкрд░, рдбрд┐рд╕реНрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдкреВрд░реНрдг рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдФрд░ рд╕рд╛рдЭрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛
рдЖрдкрдХреЛ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ред
рдпрд╣ рдХрдВрд╕реЛрд▓ рд╕реЗ рдпрд╛ OMV WEB рдЗрдВрдЯрд░рдлреЗрд╕ ( рд╕реНрдЯреЛрд░реЗрдЬ-> ZFS-> рд╕реЗрд▓реЗрдХреНрдЯ рдЯреИрдВрдХ рдЯреИрдВрдХ0-> рдРрдб рдмрдЯрди -> рдлрд╛рдЗрд▓рд╕рд┐рд╕реНрдЯрдо ) рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
FS рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрджреЗрд╢ рджреЗрддрд╛ рд╣реИред zfs create -o utf8only=on -o normalization=formD -p tank0/user_data/books zfs create -o utf8only=on -o normalization=formD -p tank0/user_data/music zfs create -o utf8only=on -o normalization=formD -p tank0/user_data/pictures zfs create -o utf8only=on -o normalization=formD -p tank0/user_data/downloads zfs create -o compression=off -o utf8only=on -o normalization=formD -p tank0/user_data/videos
рдкрд░рд┐рдгрд╛рдо рдирд┐рдореНрди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕рдВрд░рдЪрдирд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:

рдЙрд╕рдХреЗ рдмрд╛рдж, "рдПрдлрдПрд╕ рдПрдХреНрд╕реЗрд╕ рдореИрдиреЗрдЬрд┐рдВрдЧ рд░рд╛рдЗрдЯреНрд╕-> рдЬрдирд░рд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБ-> рдРрдб" рдкреЗрдЬ рдкрд░ рд╕рд╛рдЭрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдП рдЧрдП рдПрдлрдПрд╕ рдЬреЛрдбрд╝реЗрдВ ред
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ "рдбрд┐рд╡рд╛рдЗрд╕" рдкреИрд░рд╛рдореАрдЯрд░ ZFS рдореЗрдВ рдмрдирд╛рдИ рдЧрдИ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдкрде рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рдФрд░ рд╕рднреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП "рдкрде" рдкреИрд░рд╛рдореАрдЯрд░ "/" рд╣реИред

рдмреИрдХрдЕрдк
рдмреИрдХрдЕрдк рджреЛ рдЙрдкрдХрд░рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
- OMV рдмреИрдХрдЕрдк рдкреНрд▓рдЧрдЗрди ред рд╕рд┐рд╕реНрдЯрдо рдмреИрдХрдЕрдк рдХреЗ рд▓рд┐рдП рдУрдПрдорд╡реА рдкреНрд▓рдЧрдЗрдиред
- zfs- рдСрдЯреЛ-рд╕реНрдиреИрдкрд╢реЙрдЯ ред рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рд╢реЗрдбреНрдпреВрд▓ рдкрд░ ZFS рд╕реНрдиреИрдкрд╢реЙрдЯ рдмрдирд╛рдиреЗ рдФрд░ рдкреБрд░рд╛рдиреЗ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдПред
рдпрджрд┐ рдЖрдк рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ:
lsblk: /dev/block/0:22: not a block device
рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╕ "рдмрд╣реБрдд рд╣реА рдЧреИрд░-рдорд╛рдирдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди" рдореЗрдВ рдУрдПрдорд╡реА рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдиреЛрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ , рдпрд╣ рдкреНрд▓рдЧрдЗрди рдХреЛ рдордирд╛ рдХрд░рдирд╛ рдФрд░ zfs send/receive
рдХреЗ рд░реВрдк рдореЗрдВ ZFS рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред
рдпрд╛, рднреМрддрд┐рдХ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ "рд░реВрдЯ рдбрд┐рд╡рд╛рдЗрд╕" рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ, рдЬрд╣рд╛рдВ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдореЗрд░реЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реЗ рдУрдПрд╕ рдХрд╛ рдмреИрдХрдЕрдк рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХреБрдЫ рдХреЛ zfs рднреЗрдЬрдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЗрд╕рд▓рд┐рдП рдореИрдВ рджреВрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред

рдмреИрдХрдЕрдк рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд╣рд▓реЗ tank0/apps/backup
рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЛ ZFS рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрдирд╛рдПрдВ, рдлрд┐рд░ "рд╕рд┐рд╕реНрдЯрдо-> рдмреИрдХрдЕрдк" рдореЗрдиреВ рдореЗрдВ "рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдлрд╝реЛрд▓реНрдбрд░" рдкреИрд░рд╛рдореАрдЯрд░ рдлрд╝реАрд▓реНрдб рдореЗрдВ "+" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдмрдирд╛рдП рдЧрдП рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рд▓рдХреНрд╖реНрдп рдФрд░ "рдкрде" рдлрд╝реАрд▓реНрдб рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред "/" рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВред
Zfs-auto-snapshot рдХреЗ рд╕рд╛рде рднреА рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВред рдпрджрд┐ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╡рд╣ рд╣рд░ рдШрдВрдЯреЗ, рд╣рд░ рджрд┐рди, рд╣рд░ рд╣рдлреНрддреЗ, рд╣рд░ рдорд╣реАрдиреЗ рдПрдХ рд╕рд╛рд▓ рдХреЗ рд▓рд┐рдП рддрд╕реНрд╡реАрд░реЗрдВ рд▓реЗрдЧрд╛ред
рдкрд░рд┐рдгрд╛рдо рдпрд╣ рд╣реИ рдХрд┐ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рдХреНрдпрд╛ рд╣реИ:

рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╣реА рдЗрд╕ рдкрд╛рд░ рдЖ рдЪреБрдХреЗ рд╣реИрдВ, рддреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕реНрдиреИрдкрд╢реЙрдЯ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рдХреЛрдб рдЪрд▓рд╛рдПрдБ:
zfs list -t snapshot -o name -S creation | grep "@zfs-auto-snap" | tail -n +1500 | xargs -n 1 zfs destroy -vr
рдлрд┐рд░ рдХреНрд░реЛрди рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП zfs-auto-snapshot рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред
рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЛ рд╣рд░ рдШрдВрдЯреЗ рдЪрд┐рддреНрд░ рд▓реЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдмрд╕ /etc/cron.hourly/zfs-auto-snapshot
рд╣рдЯрд╛рдПрдВред
рдИрдореЗрд▓ рд╕реВрдЪрдирд╛рдПрдВ
рдИ-рдореЗрд▓ рджреНрд╡рд╛рд░рд╛ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреЛ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд╕рд╛рдзрдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЗрд╕рд▓рд┐рдП, рдЕрдм рдЖрдкрдХреЛ рдИрдореЗрд▓ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕рд░реНрд╡рд░реЛрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдкрд░ рдПрдХ рдмреЙрдХреНрд╕ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВ (рдпрджрд┐ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрд╕рдПрдордЯреАрдкреА рд╕рд░реНрд╡рд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕рдХреЗ рдХрд╛рд░рдг рд╣реИрдВ)ред
рдлрд┐рд░ рдЖрдкрдХреЛ "рд╕рд┐рд╕реНрдЯрдо-> рдЕрдзрд┐рд╕реВрдЪрдирд╛" рдкреГрд╖реНрда рдкрд░ рдЬрд╛рдиреЗ рдФрд░ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
- SMTP рд╕рд░реНрд╡рд░ рдкрддрд╛ред
- SMTP рд╕рд░реНрд╡рд░ рдкреЛрд░реНрдЯред
- рдкреНрд░рдпреЛрдХреНрддрд╛ рдирд╛рдоред
- рдкреНрд░реЗрд╖рдХ рдкрддрд╛ (рдЖрдорддреМрд░ рдкрд░ рдкрддреЗ рдХрд╛ рдкрд╣рд▓рд╛ рдШрдЯрдХ рдирд╛рдо рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ)ред
- рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдкрд╛рд╕рд╡рд░реНрдб
- "рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛" рдлрд╝реАрд▓реНрдб рдореЗрдВ, рдЖрдкрдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рдкрддрд╛ рдЬрд┐рд╕ рдкрд░ NAS рд╕реВрдЪрдирд╛рдПрдВ рднреЗрдЬреЗрдЧрд╛ред
рдПрд╕рдПрд╕рдПрд▓ / рдЯреАрдПрд▓рдПрд╕ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рдЕрддреНрдпрдзрд┐рдХ рдЙрдЪрд┐рдд рд╣реИред
рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рдпреИрдВрдбреЗрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╕реЗрдЯрдЕрдк рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:

NAS рдХреЗ рдмрд╛рд╣рд░ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрдЯрдЕрдк
рдЖрдИрдкреА тАЛтАЛрдПрдбреНрд░реЗрд╕
рдореИрдВ рдПрдХ рд╕рдлреЗрдж рд╕реНрдерд┐рд░ рдЖрдИрдкреА рдкрддреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдЬрд┐рд╕рдХреА рд▓рд╛рдЧрдд рдкреНрд░рддрд┐ рдорд╛рд╣ 100 рд░реВрдмрд▓ рд╣реИред рдпрджрд┐ рднреБрдЧрддрд╛рди рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЗрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЖрдкрдХрд╛ рдкрддрд╛ рдЧрддрд┐рд╢реАрд▓ рд╣реИ, рд▓реЗрдХрд┐рди NAT рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ, рддреЛ рдЪрдпрдирд┐рдд рд╕реЗрд╡рд╛ рдХреЗ рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрд╛рд╣рд░реА DNS рд░рд┐рдХреЙрд░реНрдб рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред
рдлрд┐рд░ рднреА, рдпрд╣ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдПрдХ рдЧреИрд░-рдПрдирдПрдЯреА рдкрддрд╛ рдЕрдЪрд╛рдирдХ рдПрдирдПрдЯреА рдкрддрд╛ рдмрди рд╕рдХрддрд╛ рд╣реИ: рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдкреНрд░рджрд╛рддрд╛ рдХреЛрдИ рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВред
рд░реВрдЯрд░
рд░рд╛рдЙрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдореЗрд░реЗ рдкрд╛рд╕ рдорд┐рдХрд░реЛрдЯрд┐рдХ рд░рд╛рдЙрдЯрд░рдмреЛрд░реНрдб рд╣реИ , рдЬреЛ рдиреАрдЪреЗ рджреА рдЧрдИ рддрд╕реНрд╡реАрд░ рдореЗрдВ рдПрдХ рдХреЗ рд╕рдорд╛рди рд╣реИред

рд░рд╛рдЙрдЯрд░ рдкрд░ рддреАрди рдЪреАрдЬреЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВ:
- NAS рдХреЗ рд▓рд┐рдП рд╕реНрдереИрддрд┐рдХ рдкрддреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкрддреЗ рдбреАрдПрдЪрд╕реАрдкреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рд░реА рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдореБрдЭреЗ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореИрдХ рдкрддреЗ рд╡рд╛рд▓реЗ рдПрдбреЗрдкреНрдЯрд░ рдХреЛ рд╣рдореЗрд╢рд╛ рдПрдХ рд╣реА рдЖрдИрдкреА рдкрддрд╛ рдорд┐рд▓рддрд╛ рд╣реИред рд░рд╛рдЙрдЯрд░рдУрдПрд╕ рдореЗрдВ, рдпрд╣ "рдЖрдИрдкреА-> рдбреАрдПрдЪрд╕реАрдкреА рд╕рд░реНрд╡рд░" рдЯреИрдм рдкрд░ "рдореЗрдХ рд╕реНрдЯреИрдЯрд┐рдХ" рдмрдЯрди рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- DNS рд╕рд░реНрд╡рд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ рддрд╛рдХрд┐ "nas" рдирд╛рдо рдХреЗ рд╕рд╛рде-рд╕рд╛рде ".nas" рдФрд░ ".NAS.cloudns.cc" рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдирд╛рдо (рдЬрд╣рд╛рдВ "NAS" ClouDNS рдпрд╛ рдЗрд╕реА рддрд░рд╣ рдХреА рд╕реЗрд╡рд╛ рдкрд░ рдЬрд╝реЛрди рд╣реИ) рдпрд╣ IP рд╕рд┐рд╕реНрдЯрдо рджреЗрддрд╛ рд╣реИред RouterOS рдореЗрдВ рдпрд╣ рдХрд╣рд╛рдБ рдХрд░рдирд╛ рд╣реИ, рдиреАрдЪреЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдПрдХ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд╕рд╛рде рдирд╛рдо рд╕реЗ рдореЗрд▓ рдЦрд╛рддреЗ рджреНрд╡рд╛рд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: "
^.*\.nas$|^nas$|^.*\.NAS.cloudns.cc$
"ред - рдкреЛрд░реНрдЯ рдлрд╝реЙрд░рд╡рд░реНрдбрд┐рдВрдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред рд░рд╛рдЙрдЯрд░рдУрдПрд╕ рдореЗрдВ, рдпрд╣ "рдЖрдИрдкреА-> рдлрд╝рд╛рдпрд░рд╡реЙрд▓" рдЯреИрдм рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдореИрдВ рдЗрд╕ рдкрд░ рдЖрдЧреЗ рдирд╣реАрдВ рд░рд╣реВрдВрдЧрд╛ред

ClouDNS
CLUDNS рд╕рд░рд▓ рд╣реИред рдПрдХ рдЦрд╛рддрд╛ рдмрдирд╛рдПрдБ, рдкреБрд╖реНрдЯрд┐ рдХрд░реЗрдВред рдЖрдкрдХреЗ рд╕рд╛рде рдПрдирдПрд╕ рд░рд┐рдХреЙрд░реНрдб рдкрд╣рд▓реЗ рд╣реА рдкрдВрдЬреАрдХреГрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЕрдЧрд▓рд╛, рдиреНрдпреВрдирддрдо рд╕реЗрдЯрдЕрдк рдЖрд╡рд╢реНрдпрдХ рд╣реИред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХ рдЬрд╝реЛрди рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдПрдирдПрдПрд╕ рдирд╛рдо рдХреЗ рд╕рд╛рде рдЬрд╝реЛрди рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рд▓рд╛рд▓ рд░рдВрдЧ рдореЗрдВ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдПрдХ рдЕрд▓рдЧ рдирд╛рдо рдХреЗ рд╕рд╛рде рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ)ред

рджреВрд╕рд░реЗ, рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдП-рд░рд┐рдХреЙрд░реНрдб рджрд░реНрдЬ рдХрд░рдиреЗ рдЪрд╛рд╣рд┐рдП:
- nas , www , omv , control рдФрд░ рдПрдХ рдЦрд╛рд▓реА рдирд╛рдо ред OMV рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
- ldap PhpLdapAdmin рдЗрдВрдЯрд░рдлрд╝реЗрд╕
- рдПрд╕ рдкреА рдПрд╕ ред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд╛рд╕рд╡рд░реНрдб рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдлрд╝реЗрд╕ред
- рдкрд░реАрдХреНрд╖рдг ред рдЯреЗрд╕реНрдЯ рд╕рд░реНрд╡рд░ред
рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реА рд╢реЗрд╖ рдбреЛрдореЗрди рдирд╛рдо рдЬреБрдбрд╝ рдЬрд╛рдПрдВрдЧреЗред
рдЬрд╝реЛрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдлрд┐рд░ "рдирдпрд╛ рд░рд┐рдХреЙрд░реНрдб рдЬреЛрдбрд╝реЗрдВ" , рдП-рдкреНрд░рдХрд╛рд░ рдЪреБрдиреЗрдВ, рдЬрд╝реЛрди рдХрд╛ рдирд╛рдо рдФрд░ рд░рд╛рдЙрдЯрд░ рдХрд╛ рдЖрдИрдкреА рдкрддрд╛ рджрд░реНрдЬ рдХрд░реЗрдВ рдЬрд┐рд╕рдХреЗ рдкреАрдЫреЗ рдПрдирдПрдПрд╕ рд╣реИред

рджреВрд╕рд░реЗ, рдЖрдкрдХреЛ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред ClouDNS рдореЗрдВ рдЗрд╕рдХрд╛ рднреБрдЧрддрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рднреБрдЧрддрд╛рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЕрдиреНрдп рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ, рдпрд╣ рдореБрдлрд╝реНрдд рд╣реИред рдпрджрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕рд╛ рдмреЗрд╣рддрд░ рд╣реИ, рдФрд░ рдпрд╣ рд▓реЗрдХреНрд╕рд┐рдХрди рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд▓рд┐рдЦреЗрдВред
рдПрдкреАрдЖрдИ рддрдХ рдкрд╣реБрдБрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рд╡рд╣рд╛рдБ рдПрдХ рдирдпрд╛ рдПрдкреАрдЖрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред

"IP address" IP : , API. , , API, auth-id auth-password . Lexicon, .

ClouDNS .
Docker
openmediavault-docker-gui, docker-ce .
, docker-compose , :
apt-get install docker-compose
:
zfs create -p /tank0/docker/services
, /var/lib/docker
. ( , SSD), , , .
..,
. .

, .
, GUI , : , .. , .
/var/lib
:
service docker stop zfs create -o com.sun:auto-snapshot=false -p /tank0/docker/lib rm -rf /var/lib/docker ln -s /tank0/docker/lib /var/lib/docker service docker start
:
$ ls -l /var/lib/docker lrwxrwxrwx 1 root root 17 Apr 7 12:35 /var/lib/docker -> /tank0/docker/lib
:
docker network create docker0
Docker .
nginx-reverse-proxy
Docker , .
, .
: nginx-proxy letsencrypt-dns .
, OMV 10080 10443, 80 443.
/tank0/docker/services/nginx-proxy/docker-compose.yml version: '2' networks: docker0: external: name: docker0 services: nginx-proxy: networks: - docker0 restart: always image: jwilder/nginx-proxy ports: - "80:80" - "443:443" volumes: - ./certs:/etc/nginx/certs:ro - ./vhost.d:/etc/nginx/vhost.d - ./html:/usr/share/nginx/html - /var/run/docker.sock:/tmp/docker.sock:ro - ./local-config:/etc/nginx/conf.d - ./nginx.tmpl:/app/nginx.tmpl labels: - "com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy=true" letsencrypt-dns: image: adferrand/letsencrypt-dns volumes: - ./certs/letsencrypt:/etc/letsencrypt environment: - "LETSENCRYPT_USER_MAIL=MAIL@MAIL.COM" - "LEXICON_PROVIDER=cloudns" - "LEXICON_OPTIONS=--delegated NAS.cloudns.cc" - "LEXICON_PROVIDER_OPTIONS=--auth-id=CLOUDNS_ID --auth-password=CLOUDNS_PASSWORD"
:
- nginx-reverse-proxy тАФ c .
- letsencrypt-dns тАФ ACME Let's Encrypt.
nginx-reverse-proxy jwilder/nginx-proxy .
docker0
тАФ , , docker-compose.
nginx-proxy
тАФ , . docker0. , 80 443 ports (, , docker0, ).
restart: always
, .
:
certs
/etc/nginx/certs
тАФ , , Let's Encrypt. ACME ../vhost.d:/etc/nginx/vhost.d
тАФ . ../html:/usr/share/nginx/html
тАФ . ./var/run/docker.sock
, /tmp/docker.sock
тАФ Docker . docker-gen ../local-config
, /etc/nginx/conf.d
тАФ nginx. , ../nginx.tmpl
, /app/nginx.tmpl
тАФ nginx, docker-gen .
letsencrypt-dns adferrand/letsencrypt-dns . ACME Lexicon, DNS .
certs/letsencrypt
/etc/letsencrypt
.
, :
LETSENCRYPT_USER_MAIL=MAIL@MAIL.COM
тАФ Let's Encrypt. , .LEXICON_PROVIDER=cloudns
тАФ Lexicon. тАФ cloudns
.LEXICON_PROVIDER_OPTIONS=--auth-id=CLOUDNS_ID --auth-password=CLOUDNS_PASSWORD --delegated=NAS.cloudns.cc
тАФ CLOUDNS_ID ClouDNS . CLOUDNS_PASSWORD тАФ , API. NAS.cloudns.cc, NAS тАФ DNS . cloudns , (cloudns.cc), ClouDNS API .
: .
, , , , Let's encrypt:
$ ls ./certs/letsencrypt/ accounts archive csr domains.conf keys live renewal renewal-hooks
, , .
/tank0/docker/services/nginx-proxy/nginx.tmpl {{ $CurrentContainer := where $ .Docker.CurrentContainerID | first }} {{ define }} {{ if .Address }} {{/* If we got the containers from swarm and this container's port is published to host, use host IP:PORT */}} {{ if and .Container.Node.ID .Address.HostPort }} # {{ .Container.Node.Name }}/{{ .Container.Name }} server {{ .Container.Node.Address.IP }}:{{ .Address.HostPort }}; {{/* If there is no swarm node or the port is not published on host, use container's IP:PORT */}} {{ else if .Network }} # {{ .Container.Name }} server {{ .Network.IP }}:{{ .Address.Port }}; {{ end }} {{ else if .Network }} # {{ .Container.Name }} {{ if .Network.IP }} server {{ .Network.IP }} down; {{ else }} server 127.0.0.1 down; {{ end }} {{ end }} {{ end }} # If we receive X-Forwarded-Proto, pass it through; otherwise, pass along the # scheme used to connect to this server map $http_x_forwarded_proto $proxy_x_forwarded_proto { default $http_x_forwarded_proto; '' $scheme; } # If we receive X-Forwarded-Port, pass it through; otherwise, pass along the # server port the client connected to map $http_x_forwarded_port $proxy_x_forwarded_port { default $http_x_forwarded_port; '' $server_port; } # If we receive Upgrade, set Connection to ; otherwise, delete any # Connection header that may have been passed to this server map $http_upgrade $proxy_connection { default upgrade; '' close; } # Apply fix for very long server names server_names_hash_bucket_size 128; # Default dhparam {{ if (exists ) }} ssl_dhparam /etc/nginx/dhparam/dhparam.pem; {{ end }} # Set appropriate X-Forwarded-Ssl header map $scheme $proxy_x_forwarded_ssl { default off; https on; } gzip_types text/plain text/css application/javascript application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; log_format vhost '$host $remote_addr - $remote_user [$time_local] ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent"'; access_log off; {{ if $.Env.RESOLVERS }} resolver {{ $.Env.RESOLVERS }}; {{ end }} {{ if (exists ) }} include /etc/nginx/proxy.conf; {{ else }} # HTTP 1.1 support proxy_http_version 1.1; proxy_buffering off; proxy_set_header Host $http_host; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $proxy_connection; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $proxy_x_forwarded_proto; proxy_set_header X-Forwarded-Ssl $proxy_x_forwarded_ssl; proxy_set_header X-Forwarded-Port $proxy_x_forwarded_port; # Mitigate httpoxy attack (see README for details) proxy_set_header Proxy ; {{ end }} {{ $enable_ipv6 := eq (or ($.Env.ENABLE_IPV6) ) }} server { server_name _; # This is just an invalid value which will never trigger on a real hostname. listen 80; {{ if $enable_ipv6 }} listen [::]:80; {{ end }} access_log /var/log/nginx/access.log vhost; return 503; } {{ if (and (exists ) (exists )) }} server { server_name _; # This is just an invalid value which will never trigger on a real hostname. listen 443 ssl http2; {{ if $enable_ipv6 }} listen [::]:443 ssl http2; {{ end }} access_log /var/log/nginx/access.log vhost; return 503; ssl_session_tickets off; ssl_certificate /etc/nginx/certs/default.crt; ssl_certificate_key /etc/nginx/certs/default.key; } {{ end }} {{ range $host, $containers := groupByMulti $ }} {{ $host := trim $host }} {{ $is_regexp := hasPrefix $host }} {{ $upstream_name := when $is_regexp (sha1 $host) $host }} # {{ $host }} upstream {{ $upstream_name }} { {{ range $container := $containers }} {{ $addrLen := len $container.Addresses }} {{ range $knownNetwork := $CurrentContainer.Networks }} {{ range $containerNetwork := $container.Networks }} {{ if (and (ne $containerNetwork.Name ) (or (eq $knownNetwork.Name $containerNetwork.Name) (eq $knownNetwork.Name ))) }} ## Can be connected with network {{/* If only 1 port exposed, use that */}} {{ if eq $addrLen 1 }} {{ $address := index $container.Addresses 0 }} {{ template (dict $container $address $containerNetwork) }} {{/* If more than one port exposed, use the one matching VIRTUAL_PORT env var, falling back to standard web port 80 */}} {{ else }} {{ $port := coalesce $container.Env.VIRTUAL_PORT }} {{ $address := where $container.Addresses $port | first }} {{ template (dict $container $address $containerNetwork) }} {{ end }} {{ else }} # Cannot connect to network of this container server 127.0.0.1 down; {{ end }} {{ end }} {{ end }} {{ end }} } {{ $default_host := or ($.Env.DEFAULT_HOST) }} {{ $default_server := index (dict $host $default_host ) $host }} {{/* Get the VIRTUAL_PROTO defined by containers w/ the same vhost, falling back to */}} {{ $proto := trim (or (first (groupByKeys $containers )) ) }} {{/* Get the NETWORK_ACCESS defined by containers w/ the same vhost, falling back to */}} {{ $network_tag := or (first (groupByKeys $containers )) }} {{/* Get the HTTPS_METHOD defined by containers w/ the same vhost, falling back to */}} {{ $https_method := or (first (groupByKeys $containers )) }} {{/* Get the SSL_POLICY defined by containers w/ the same vhost, falling back to */}} {{ $ssl_policy := or (first (groupByKeys $containers )) }} {{/* Get the HSTS defined by containers w/ the same vhost, falling back to */}} {{ $hsts := or (first (groupByKeys $containers )) }} {{/* Get the VIRTUAL_ROOT By containers w/ use fastcgi root */}} {{ $vhost_root := or (first (groupByKeys $containers )) }} {{/* Get the first cert name defined by containers w/ the same vhost */}} {{ $certName := (first (groupByKeys $containers )) }} {{/* Get the best matching cert by name for the vhost. */}} {{ $vhostCert := (closest (dir ) (printf $host))}} {{/* vhostCert is actually a filename so remove any suffixes since they are added later */}} {{ $vhostCert := trimSuffix $vhostCert }} {{ $vhostCert := trimSuffix $vhostCert }} {{/* Use the cert specified on the container or fallback to the best vhost match */}} {{ $cert := (coalesce $certName $vhostCert) }} {{ $is_https := (and (ne $https_method ) (ne $cert ) (or (and (exists (printf $cert)) (exists (printf $cert))) (and (exists (printf $cert)) (exists (printf $cert)))) ) }} {{ if $is_https }} {{ if eq $https_method }} server { server_name {{ $host }}; listen 80 {{ $default_server }}; {{ if $enable_ipv6 }} listen [::]:80 {{ $default_server }}; {{ end }} access_log /var/log/nginx/access.log vhost; return 301 https://$host$request_uri; } {{ end }} server { server_name {{ $host }}; listen 443 ssl http2 {{ $default_server }}; {{ if $enable_ipv6 }} listen [::]:443 ssl http2 {{ $default_server }}; {{ end }} access_log /var/log/nginx/access.log vhost; {{ if eq $network_tag }} # Only allow traffic from internal clients include /etc/nginx/network_internal.conf; {{ end }} {{ if eq $ssl_policy }} ssl_protocols TLSv1.2; ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256'; {{ else if eq $ssl_policy }} ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:!DSS'; {{ else if eq $ssl_policy }} ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:DES-CBC3-SHA:HIGH:SEED:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!RSAPSK:!aDH:!aECDH:!EDH-DSS-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA:!SRP'; {{ else if eq $ssl_policy }} ssl_protocols TLSv1.2; ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:AES128-GCM-SHA256:AES128-SHA256:AES256-GCM-SHA384:AES256-SHA256'; {{ else if eq $ssl_policy }} ssl_protocols TLSv1.1 TLSv1.2; ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:AES128-GCM-SHA256:AES128-SHA256:AES128-SHA:AES256-GCM-SHA384:AES256-SHA256:AES256-SHA'; {{ else if eq $ssl_policy }} ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:AES128-GCM-SHA256:AES128-SHA256:AES128-SHA:AES256-GCM-SHA384:AES256-SHA256:AES256-SHA'; {{ else if eq $ssl_policy }} ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:AES128-GCM-SHA256:AES128-SHA256:AES128-SHA:AES256-GCM-SHA384:AES256-SHA256:AES256-SHA:DES-CBC3-SHA'; {{ else if eq $ssl_policy }} ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:AES128-GCM-SHA256:AES128-SHA256:AES128-SHA:AES256-GCM-SHA384:AES256-SHA256:AES256-SHA:DHE-DSS-AES128-SHA:DES-CBC3-SHA'; {{ else if eq $ssl_policy }} ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:AES128-GCM-SHA256:AES128-SHA256:AES128-SHA:AES256-GCM-SHA384:AES256-SHA256:AES256-SHA:DHE-DSS-AES128-SHA'; {{ end }} ssl_prefer_server_ciphers on; ssl_session_timeout 5m; ssl_session_cache shared:SSL:50m; ssl_session_tickets off; {{ if (and (exists (printf $cert)) (exists (printf $cert))) }} ssl_certificate /etc/nginx/certs/letsencrypt/live/{{ (printf $cert) }}; ssl_certificate_key /etc/nginx/certs/letsencrypt/live/{{ (printf $cert) }}; {{ else if (and (exists (printf $cert)) (exists (printf $cert))) }} ssl_certificate /etc/nginx/certs/{{ (printf $cert) }}; ssl_certificate_key /etc/nginx/certs/{{ (printf $cert) }}; {{ end }} {{ if (exists (printf $cert)) }} ssl_dhparam {{ printf $cert }}; {{ end }} {{ if (exists (printf $cert)) }} ssl_stapling on; ssl_stapling_verify on; ssl_trusted_certificate {{ printf $cert }}; {{ end }} {{ if (and (ne $https_method ) (ne $hsts )) }} add_header Strict-Transport-Security always; {{ end }} {{ if (exists (printf $host)) }} include {{ printf $host }}; {{ else if (exists ) }} include /etc/nginx/vhost.d/default; {{ end }} location / { {{ if eq $proto }} include uwsgi_params; uwsgi_pass {{ trim $proto }}://{{ trim $upstream_name }}; {{ else if eq $proto }} root {{ trim $vhost_root }}; include fastcgi.conf; fastcgi_pass {{ trim $upstream_name }}; {{ else }} proxy_pass {{ trim $proto }}://{{ trim $upstream_name }}; {{ end }} {{ if (exists (printf $host)) }} auth_basic ; auth_basic_user_file {{ (printf $host) }}; {{ end }} {{ if (exists (printf $host)) }} include {{ printf $host}}; {{ else if (exists ) }} include /etc/nginx/vhost.d/default_location; {{ end }} } } {{ end }} {{ if or (not $is_https) (eq $https_method ) }} server { server_name {{ $host }}; listen 80 {{ $default_server }}; {{ if $enable_ipv6 }} listen [::]:80 {{ $default_server }}; {{ end }} access_log /var/log/nginx/access.log vhost; {{ if eq $network_tag }} # Only allow traffic from internal clients include /etc/nginx/network_internal.conf; {{ end }} {{ if (exists (printf $host)) }} include {{ printf $host }}; {{ else if (exists ) }} include /etc/nginx/vhost.d/default; {{ end }} location / { {{ if eq $proto }} include uwsgi_params; uwsgi_pass {{ trim $proto }}://{{ trim $upstream_name }}; {{ else if eq $proto }} root {{ trim $vhost_root }}; include fastcgi.conf; fastcgi_pass {{ trim $upstream_name }}; {{ else }} proxy_pass {{ trim $proto }}://{{ trim $upstream_name }}; {{ end }} {{ if (exists (printf $host)) }} auth_basic ; auth_basic_user_file {{ (printf $host) }}; {{ end }} {{ if (exists (printf $host)) }} include {{ printf $host}}; {{ else if (exists ) }} include /etc/nginx/vhost.d/default_location; {{ end }} } } {{ if (and (not $is_https) (exists ) (exists )) }} server { server_name {{ $host }}; listen 443 ssl http2 {{ $default_server }}; {{ if $enable_ipv6 }} listen [::]:443 ssl http2 {{ $default_server }}; {{ end }} access_log /var/log/nginx/access.log vhost; return 500; ssl_certificate /etc/nginx/certs/default.crt; ssl_certificate_key /etc/nginx/certs/default.key; } {{ end }} {{ end }} {{ end }}
, nginx /etc/nginx/certs/%s.crt
/etc/nginx/certs/%s.pem
, %s тАФ ( тАФ , ).
/etc/nginx/certs/letsencrypt/live/%s/{fullchain.pem, privkey.pem}
, :
{{ $is_https := (and (ne $https_method "nohttps") (ne $cert "") (or (and (exists (printf "/etc/nginx/certs/letsencrypt/live/%s/fullchain.pem" $cert)) (exists (printf "/etc/nginx/certs/letsencrypt/live/%s/privkey.pem" $cert)) ) (and (exists (printf "/etc/nginx/certs/%s.crt" $cert)) (exists (printf "/etc/nginx/certs/%s.key" $cert)) ) ) ) }}
, domains.conf
.
/tank0/docker/services/nginx-proxy/certs/letsencrypt/domains.conf *.NAS.cloudns.cc NAS.cloudns.cc
. , , , client_max_body_size
20, .
/tank0/docker/services/nginx-proxy/local-config/max_upload_size.conf client_max_body_size 20G;
, :
docker-compose up
( ), Ctrl+C :
docker-compose up -d
тАФ nginx, . , , .
, NAS.
.
docker-compose :
/tank0/docker/services/test_nginx/docker-compose.yml version: '2' networks: docker0: external: name: docker0 services: nginx-local: restart: always image: nginx:alpine expose: - 80 - 443 environment: - "VIRTUAL_HOST=test.NAS.cloudns.cc" - "VIRTUAL_PROTO=http" - "VIRTUAL_PORT=80" - CERT_NAME=NAS.cloudns.cc networks: - docker0
:
docker0
тАФ . .expose
тАФ , . , 80 HTTP 443 HTTPS.VIRTUAL_HOST=test.NAS.cloudns.cc
тАФ , nginx-reverse-proxy .VIRTUAL_PROTO=http
тАФ nginx-reverse-proxy . , HTTP.VIRTUAL_PORT=80
тАФ nginx-reverse-proxy.CERT_NAME=NAS.cloudns.cc
тАФ . , , . NAS тАФ DNS .networks
тАФ , nginx-reverse-proxy docker0
.
, . docker-compose up
, test.NAS.cloudns.cc
.
:
$ docker-compose up Creating testnginx_nginx-local_1 Attaching to testnginx_nginx-local_1 nginx-local_1 | 172.22.0.5 - - [29/Jul/2018:15:32:02 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537 (KHTML, like Gecko) Chrome/67.0 Safari/537" "192.168.2.3" nginx-local_1 | 2018/07/29 15:32:02 [error] 8
:

, , , , : .
, Ctrl+C, docker-compose down
.
local-rpoxy
, nginx-default , nas, omv 10080 10443 .
.
/tank0/docker/services/nginx-local/docker-compose.yml version: '2' networks: docker0: external: name: docker0 services: nginx-local: restart: always image: nginx:alpine expose: - 80 - 443 environment: - "VIRTUAL_HOST=NAS.cloudns.cc,nas,nas.*,www.*,omv.*,nas-controller.nas" - "VIRTUAL_PROTO=http" - "VIRTUAL_PORT=80" - CERT_NAME=NAS.cloudns.cc volumes: - ./local-config:/etc/nginx/conf.d networks: - docker0
docker-compose , .
, , , NAS.cloudns.cc
. , NAS DNS , .
/tank0/docker/services/nginx-local/local-config/default.conf # If we receive X-Forwarded-Proto, pass it through; otherwise, pass along the # scheme used to connect to this server map $http_x_forwarded_proto $proxy_x_forwarded_proto { default $http_x_forwarded_proto; '' $scheme; } # If we receive X-Forwarded-Port, pass it through; otherwise, pass along the # server port the client connected to map $http_x_forwarded_port $proxy_x_forwarded_port { default $http_x_forwarded_port; '' $server_port; } # Set appropriate X-Forwarded-Ssl header map $scheme $proxy_x_forwarded_ssl { default off; https on; } access_log on; error_log on; # HTTP 1.1 support proxy_http_version 1.1; proxy_buffering off; proxy_set_header Host $http_host; proxy_set_header Upgrade $http_upgrade; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $proxy_x_forwarded_proto; proxy_set_header X-Forwarded-Ssl $proxy_x_forwarded_ssl; proxy_set_header X-Forwarded-Port $proxy_x_forwarded_port; # Mitigate httpoxy attack (see README for details) proxy_set_header Proxy ""; server { server_name _; # This is just an invalid value which will never trigger on a real hostname. listen 80; return 503; } server { server_name www.* nas.* omv.* ""; listen 80; location / { proxy_pass https:
172.21.0.1
тАФ . 443, OMV HTTPS. .https://nas-controller/
тАФ -, IPMI, nas, nas-controller.nas, nas-controller. .
LDAP
LDAP-
LDAP- тАФ .
Docker . , , .
LDIF- .
/tank0/docker/services/ldap/docker-compose.yml version: "2" networks: ldap: docker0: external: name: docker0 services: open-ldap: image: "osixia/openldap:1.2.0" hostname: "open-ldap" restart: always environment: - "LDAP_ORGANISATION=NAS" - "LDAP_DOMAIN=nas.nas" - "LDAP_ADMIN_PASSWORD=ADMIN_PASSWORD" - "LDAP_CONFIG_PASSWORD=CONFIG_PASSWORD" - "LDAP_TLS=true" - "LDAP_TLS_ENFORCE=false" - "LDAP_TLS_CRT_FILENAME=ldap_server.crt" - "LDAP_TLS_KEY_FILENAME=ldap_server.key" - "LDAP_TLS_CA_CRT_FILENAME=ldap_server.crt" volumes: - ./certs:/container/service/slapd/assets/certs - ./ldap_data/var/lib:/var/lib/ldap - ./ldap_data/etc/ldap/slapd.d:/etc/ldap/slapd.d networks: - ldap ports: - 172.21.0.1:389:389 - 172.21.0.1::636:636 phpldapadmin: image: "osixia/phpldapadmin:0.7.1" hostname: "nas.nas" restart: always networks: - ldap - docker0 expose: - 443 links: - open-ldap:open-ldap-server volumes: - ./certs:/container/service/phpldapadmin/assets/apache2/certs environment: - VIRTUAL_HOST=ldap.* - VIRTUAL_PORT=443 - VIRTUAL_PROTO=https - CERT_NAME=NAS.cloudns.cc - "PHPLDAPADMIN_LDAP_HOSTS=open-ldap-server" #- "PHPLDAPADMIN_HTTPS=false" - "PHPLDAPADMIN_HTTPS_CRT_FILENAME=certs/ldap_server.crt" - "PHPLDAPADMIN_HTTPS_KEY_FILENAME=private/ldap_server.key" - "PHPLDAPADMIN_HTTPS_CA_CRT_FILENAME=certs/ldap_server.crt" - "PHPLDAPADMIN_LDAP_CLIENT_TLS_REQCERT=allow" ldap-ssp: image: openfrontier/ldap-ssp:https volumes: #- ./ssp/mods-enabled/ssl.conf:/etc/apache2/mods-enabled/ssl.conf - /etc/ssl/certs/ssl-cert-snakeoil.pem:/etc/ssl/certs/ssl-cert-snakeoil.pem - /etc/ssl/private/ssl-cert-snakeoil.key:/etc/ssl/private/ssl-cert-snakeoil.key restart: always networks: - ldap - docker0 expose: - 80 links: - open-ldap:open-ldap-server environment: - VIRTUAL_HOST=ssp.* - VIRTUAL_PORT=80 - VIRTUAL_PROTO=http - CERT_NAME=NAS.cloudns.cc - "LDAP_URL=ldap://open-ldap-server:389" - "LDAP_BINDDN=cn=admin,dc=nas,dc=nas" - "LDAP_BINDPW=ADMIN_PASSWORD" - "LDAP_BASE=ou=users,dc=nas,dc=nas" - "MAIL_FROM=admin@nas.nas" - "PWD_MIN_LENGTH=8" - "PWD_MIN_LOWER=3" - "PWD_MIN_DIGIT=2" - "SMTP_HOST=" - "SMTP_USER=" - "SMTP_PASS="
:
LDAP- , :
LDAP_ORGANISATION=NAS
тАФ . .LDAP_DOMAIN=nas.nas
тАФ . . , .LDAP_ADMIN_PASSWORD=ADMIN_PASSWORD
тАФ .LDAP_CONFIG_PASSWORD=CONFIG_PASSWORD
тАФ .
-, " ", .
:
/container/service/slapd/assets/certs
certs
тАФ . ../ldap_data/
тАФ , . LDAP .
ldap
, 389 ( LDAP) 636 (LDAP SSL, ) .
PhpLdapAdmin : LDAP ldap
443 docker0
, , nginx-reverse-proxy.
:
VIRTUAL_HOST=ldap.*
тАФ , nginx-reverse-proxy .VIRTUAL_PORT=443
тАФ nginx-reverse-proxy.VIRTUAL_PROTO=https
тАФ nginx-reverse-proxy.CERT_NAME=NAS.cloudns.cc
тАФ , .
SSL .
SSP HTTP .
, , .
тАФ LDAP.
LDAP_URL=ldap://open-ldap-server:389
тАФ LDAP (. links
).LDAP_BINDDN=cn=admin,dc=nas,dc=nas
тАФ .LDAP_BINDPW=ADMIN_PASSWORD
тАФ , , open-ldap.LDAP_BASE=ou=users,dc=nas,dc=nas
тАФ , .
LDAP LDAP :
apt-get install ldap-utils ldapadd -x -H ldap://172.21.0.1 -D "cn=admin,dc=nas,dc=nas" -W -f ldifs/inititialize_ldap.ldif ldapadd -x -H ldap://172.21.0.1 -D "cn=admin,dc=nas,dc=nas" -W -f ldifs/base.ldif ldapadd -x -H ldap://172.21.0.1 -D "cn=admin,cn=config" -W -f ldifs/gitlab_attr.ldif
gitlab_attr.ldif
, Gitlab ( ) .
.
LDAP $ ldapsearch -x -H ldap://172.21.0.1 -b dc=nas,dc=nas -D "cn=admin,dc=nas,dc=nas" -W Enter LDAP Password:
LDAP . WEB-.
OMV LDAP
LDAP , OMV : , , , , тАФ .
LDAP .
:

, , NAS USB.
.
NUT GUI OMV.
"->" , , , , "eaton".
" " :
driver = usbhid-ups port = auto desc = "Eaton 9130 700 VA" vendorid = 0463 pollinterval = 10
driver = usbhid-ups
тАФ USB, USB HID.vendorid
тАФ , lsusb
.pollinterval
тАФ c.
.
lsusb
, :
" " " ".
, :

. , .
.
рдирд┐рд╖реНрдХрд░реНрд╖
. , , , , .
тАФ .
-, OMV .
WEB-, , :

Docker WEB-:

, OMV .
:

:

CPU:

.
!
