User Tools

Site Tools


nas_on_debian

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
nas_on_debian [2017/08/13 04:58] herwarthnas_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 - /etc/sysctl.d/10-local.conf> 
 +vm.swappiness=1 
 +</code> 
 +===SSD kernel scheduler=== 
 +<code - /etc/udev/rules.d/60-ssd-scheduler.rules> 
 +# set deadline scheduler for non-rotating disks 
 +ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="deadline" 
 +</code>
 ====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: error: no alternatives for python
 +
 +  update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
 +  update-alternatives: using /usr/bin/python2.7 to provide /usr/bin/python (python) in auto mode
 +
 +  update-alternatives --install /usr/bin/python python /usr/bin/python3.5 2
 +  update-alternatives: using /usr/bin/python3.5 to provide /usr/bin/python (python) in auto mode
 +
 +  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 > /sys/block/bcache0/bcache/attach
 +Enable writeback cache
 +  echo writeback > /sys/block/bcache0/bcache/cache_mode
 +Show the status
 +  cat /sys/block/bcache0/bcache/cache_mode
 +  cat /sys/block/bcache0/bcache/state
 +====Bcache helpful commands====
 +===Enable writeback cache===
 +  echo writeback > /sys/block/bcache0/bcache/cache_mode
 +===Show the status===
 +  cat /sys/block/bcache0/bcache/cache_mode
 +  cat /sys/block/bcache0/bcache/state
 +===Remove cache from bcache0===
 +<code>
 +ls -l /sys/fs/bcache/
 +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
 +</code>
 +  echo af7bbe93-7bb8-4789-b879-a033c1331223 > /sys/block/bcache0/bcache/detach
 +Wait for the cache status to become no cache. When attached the cache is dirty
 +  watch -n 10 cat /sys/block/bcache0/bcache/state
 +===Remove bcache0 device===
 +  echo 1 > /sys/block/md126/bcache/stop #HDD backing
 +  echo 1 > /sys/block/md127/bcache/set/stop #SSD cache
 +  echo 1 > /sys/block/bcache0/bcache/stop
  
 =====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:ldap://ldap.mngt.bh.helux.nl  passdb backend = ldapsam:ldap://ldap.mngt.bh.helux.nl
  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 = /volume1/share  path = /volume1/share
 + force create mode = 0644
 + force directory mode = 0755
  read only = No  read only = No
  valid users = %U  valid users = %U
 </code> </code>
 +  smbpaswd -W
 +Enter the LDAP manager password
 +===mDNS===
 +  apt install avahi-daemon avahi-utils
 +<code - /etc/avahi/services/smb.service>
 +<?xml version="1.0" standalone='no'?>
 +<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
 +<service-group>
 + <name replace-wildcards="yes">%h</name>
 + <service>
 +   <type>_smb._tcp</type>
 +   <port>445</port>
 + </service>
 + <service>
 +   <type>_device-info._tcp</type>
 +   <port>0</port>
 +   <txt-record>model=RackMac</txt-record>
 + </service>
 +</service-group>
 +</code>
 +Avahi daemon should start after samba
 +  cp /lib/systemd/system/avahi.daemon.service /etc/systemd/system
 +<code - /etc/systemd/system/avahi-daemon.service>
 +[Unit]
 +.
 +.
 +Description=Avahi mDNS/DNS-SD Stack
 +Requires=avahi-daemon.socket
 +After=smbd.service
 +.
 +.
 +</code>
 +  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://download.docker.com/linux/debian/gpg | apt-key add -
 +
 +  add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
 +
 +  apt install docker-ce
 +For Kolla
 +  mkdir -p /etc/systemd/system/docker.service.d
 +<code>
 +tee /etc/systemd/system/docker.service.d/kolla.conf <<-'EOF'
 +[Service]
 +MountFlags=shared
 +EOF
 +</code>
 +  systemctl daemon-reload
 +
 +  systemctl restart docker
 +
 +  echo configfs >/etc/modules-load.d/configfs.conf
 +  systemctl status sys-kernel-config.mount
  
 {{tag>linux}} {{tag>linux}}
nas_on_debian.1502600333.txt.gz · Last modified: by herwarth