This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| nas_on_debian [2017/08/13 04:58] – herwarth | nas_on_debian [2017/08/15 18:08] (current) – herwarth | ||
|---|---|---|---|
| Line 132: | Line 132: | ||
| systemctl daemon-reload | systemctl daemon-reload | ||
| systemctl enable network-wait-online | systemctl enable network-wait-online | ||
| + | ====Tuning==== | ||
| + | ===Swappiness=== | ||
| + | <code - / | ||
| + | vm.swappiness=1 | ||
| + | </ | ||
| + | ===SSD kernel scheduler=== | ||
| + | <code - / | ||
| + | # set deadline scheduler for non-rotating disks | ||
| + | ACTION==" | ||
| + | </ | ||
| ====S.M.A.R.T monitoring==== | ====S.M.A.R.T monitoring==== | ||
| apt install smartmontools | apt install smartmontools | ||
| TODO: monitoring config with smartd and cron | TODO: monitoring config with smartd and cron | ||
| + | ====Python and PIP==== | ||
| + | |||
| + | update-alternatives --list python | ||
| + | update-alternatives: | ||
| + | |||
| + | update-alternatives --install / | ||
| + | update-alternatives: | ||
| + | |||
| + | update-alternatives --install / | ||
| + | update-alternatives: | ||
| + | |||
| + | apt install python3-pip python-pip | ||
| + | Now we can switch using the update-alternatives --config python. Remember pip for python 3 is pip3. pip is for python 2.7 | ||
| + | |||
| + | =====Bcache===== | ||
| + | Gather which disks are HDD and which are SDD.In my case: | ||
| + | - sda: SSD (256GB) | ||
| + | - sdb: HDD (4TB) | ||
| + | - sdc: HDD (4TB) | ||
| + | - sdd: SSD (120GB root disk) | ||
| + | - sde: SSD (256GB) | ||
| + | - sdf: HDD (4TB) | ||
| + | - sdg: HDD (4TB) | ||
| + | ====Create Linux RAID==== | ||
| + | I am going to create a RAID-1 mirror MD on the SSDs so I can enable writeback caching. | ||
| + | mdadm --create /dev/md0 --assume-clean --level=1 --raid-devices=2 /dev/sda /dev/sde | ||
| + | I am going to create a RAID-10 MD on the HDDs. | ||
| + | mdadm --create /dev/md1 --level=10 --raid-devices=4 /dev/sdb /dev/sdf /dev/sdc /dev/sdg | ||
| + | When rebooting the system md0 and 1 became md126 and md127. Also after rebooting the MD devices became read-only and pending sync. To enable de devices read-write: | ||
| + | mdadm --readwrite /dev/md126 | ||
| + | mdadm --readwrite /dev/md127 | ||
| + | ====Bcache configuration==== | ||
| + | apt install bcache-tools | ||
| + | In my case after a reboot /dev/md127 was the RAID-1 SSD mirror and /dev/md126 the RAID-10 HDD. | ||
| + | make-bcache --discard --writeback -C /dev/md127 | ||
| + | make-bcache -B /dev/md126 | ||
| + | We want to use UUIDs to avoid possible strange bootup behavior. | ||
| + | bcache-super-show /dev/md127 | grep cset.uuid | ||
| + | cset.uuid f8d82c5e-a9a2-4b99-a2b0-15feab250372 | ||
| + | Attach the SSD cache to the bcache0 device | ||
| + | echo f8d82c5e-a9a2-4b99-a2b0-15feab250372 > / | ||
| + | Enable writeback cache | ||
| + | echo writeback > / | ||
| + | Show the status | ||
| + | cat / | ||
| + | cat / | ||
| + | ====Bcache helpful commands==== | ||
| + | ===Enable writeback cache=== | ||
| + | echo writeback > / | ||
| + | ===Show the status=== | ||
| + | cat / | ||
| + | cat / | ||
| + | ===Remove cache from bcache0=== | ||
| + | < | ||
| + | ls -l / | ||
| + | total 0 | ||
| + | drwxr-xr-x 7 root root 0 Aug 12 21:28 af7bbe93-7bb8-4789-b879-a033c1331223 | ||
| + | --w------- 1 root root 4096 Aug 12 21:25 register | ||
| + | --w------- 1 root root 4096 Aug 12 21:25 register_quiet | ||
| + | </ | ||
| + | echo af7bbe93-7bb8-4789-b879-a033c1331223 > / | ||
| + | Wait for the cache status to become no cache. When attached the cache is dirty | ||
| + | watch -n 10 cat / | ||
| + | ===Remove bcache0 device=== | ||
| + | echo 1 > / | ||
| + | echo 1 > / | ||
| + | echo 1 > / | ||
| =====Samba===== | =====Samba===== | ||
| Line 154: | Line 230: | ||
| load printers = No | load printers = No | ||
| printcap name = cups | printcap name = cups | ||
| + | max xmit = 32768 | ||
| + | min receivefile size = 2048 | ||
| server min protocol = NT1 | server min protocol = NT1 | ||
| passdb backend = ldapsam: | passdb backend = ldapsam: | ||
| security = USER | security = USER | ||
| server role = standalone server | server role = standalone server | ||
| + | deadtime = 15 | ||
| + | socket options = IPTOS_LOWDELAY SO_RCVBUF=131072 SO_SNDBUF=131072 TCP_NODELAY | ||
| winbind enum groups = Yes | winbind enum groups = Yes | ||
| winbind enum users = Yes | winbind enum users = Yes | ||
| Line 166: | Line 246: | ||
| create mask = 0640 | create mask = 0640 | ||
| directory mask = 0750 | directory mask = 0750 | ||
| + | aio read size = 2048 | ||
| + | aio write size = 2048 | ||
| + | use sendfile = Yes | ||
| + | write cache size = 1024000 | ||
| Line 176: | Line 260: | ||
| [share] | [share] | ||
| path = / | path = / | ||
| + | force create mode = 0644 | ||
| + | force directory mode = 0755 | ||
| read only = No | read only = No | ||
| valid users = %U | valid users = %U | ||
| </ | </ | ||
| + | smbpaswd -W | ||
| + | Enter the LDAP manager password | ||
| + | ===mDNS=== | ||
| + | apt install avahi-daemon avahi-utils | ||
| + | <code - / | ||
| + | <?xml version=" | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | Avahi daemon should start after samba | ||
| + | cp / | ||
| + | <code - / | ||
| + | [Unit] | ||
| + | . | ||
| + | . | ||
| + | Description=Avahi mDNS/DNS-SD Stack | ||
| + | Requires=avahi-daemon.socket | ||
| + | After=smbd.service | ||
| + | . | ||
| + | . | ||
| + | </ | ||
| + | systemctl daemon-reload | ||
| + | systemctl enable avahi-daemon | ||
| + | =====Docker===== | ||
| + | Add the Docker CE repo and install from there | ||
| + | apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common | ||
| + | |||
| + | curl -fsSL https:// | ||
| + | |||
| + | add-apt-repository "deb [arch=amd64] https:// | ||
| + | |||
| + | apt install docker-ce | ||
| + | For Kolla | ||
| + | mkdir -p / | ||
| + | < | ||
| + | tee / | ||
| + | [Service] | ||
| + | MountFlags=shared | ||
| + | EOF | ||
| + | </ | ||
| + | systemctl daemon-reload | ||
| + | |||
| + | systemctl restart docker | ||
| + | |||
| + | echo configfs >/ | ||
| + | systemctl status sys-kernel-config.mount | ||
| {{tag> | {{tag> | ||