Server/storage

Aus C3D2
Zur Navigation springen Zur Suche springen


Vorlage:historisch
Achtung!
Historisch!
Dieser Artikel enthält keine relevanten Informationen zu den aktuellen Geschehnissen. Ferner handelt es sich um einen archivierten Artikel.


Vorlage:Beinhaltet Abweichungen von der Realität



Vorlage:beinhaltet Redundanz
Hinweis!
Redundanz!
Es besteht Redundanz mit dem Artikel Server/knusbert.

Inhalte von dem Artikel Server/knusbert sollten in diesem Artikel übernommen werden.




Hardware

Board
Xeon 3000 PDSMi+
CPU
2.40 GHz
Arbeitsspeicher
4 x 2 GB
Massenspeicher
Einschübe mit SATA
im Inneren mit IDE
im Inneren nicht angeschlossen ("abgelegt" als Ersatz (für IDE))
  • 1 x 120 GB

Bezeichnung

Die "richtige" Bezeichnung ist storage.

Jedoch schweben eine Vielzahl von anderen Begrifflichkeiten herum, die auch irgendwie storage meinen.

Bezeichnung storage

Die wohl ursprünglichste und "traditionellste" Bezeichnung ist storage.

Der Name ist Programm: storage dient als Storage für Daten für das HQ.

Bezeichnung freebert

Arg motiviert wurde storage mal auf ein neues System mit FreeBSD überführt.

Als Bezeichnung ergab sich freebert nach dem Muster

FreeBSD
meets
das Dogma .*'bert

.

Bezeichnung freenas

Bei dem Umstieg zu FreeNAS als #Betriebssystem für storage wurde auch die Bezeichnung üblich.

Bezeichnung feile

feile ist letztlich aber eine der #Jails auf storage.

Als Bezeichnung ergab sich feile nach der üblichen chaotischen Verballhornung von Begrifflichkeiten des Zwecks, hier den Dienst zur Verwaltung von Dateien (files).

Betriebssystem

Der Server/storage wird mit FreeNAS betrieben.

FreeNAS

Installation vom FreeNAS

Vorlage:Beinhaltet Abweichungen von der Realität

Stand
2014-09-12
  • boot vom 8 GB USB Stick
  • zpool import der 192 ZFS Datasets unter /mnt/zroot

Aktualisierung von FreeNAS

Aktualisierung von FreeNAS 11 auf FreeNAS 11.2

user:vater hat 2019-02-13 mal (nach fast 3 Monaten der Veröffentlichung[1]) umgestellt.

Auf der "neuen" (nun standardmäßigen) Oberfläche (/ui/) werden die bisherigen #Jails nicht (#Verwaltung von Jails mit iocage) angezeigt. Die bisherigen #Jails (#Verwaltung von Jails mit warden) können aber noch über die alte Oberfläche (/legacy/) angezeigt werden.

Dienste mit dem FreeNAS

Netzwerk

storage.hq.c3d2.de

Container

Jails

#FreeNAS, basierend auf FreeBSD bietet Jails für Container.

Bei #FreeNAS werden verschiedene Wege (Arten) an Jails angeboten:

Verwaltung von Jails

Verwaltung von Jails mit iocage
ab #Aktualisierung von FreeNAS 11 auf FreeNAS 11.2
Verwaltung von Jails mit warden
bis #Aktualisierung von FreeNAS 11 auf FreeNAS 11.2

einzelne Jails

Jail zum Betrieb von VirtualBox
IP-Adresse
172.22.99.99
web user interface
http://172.22.99.99/

Auf storage läuft eine Jail für wikipedia:de:VirtualBox. Dazu ist das phpVirtualBox Template (für eine Jail bei #FreeNAS) verwendet. Daher gibt es auch gleich das web-basierte front-end phpVirtualBox gleich passend mit dazu.

Entgegen dem üblichen Bezeichnungen für Accounts (im HQ), sind die Bezeichnungen durch das verwendete Template (eigentlich erstmal) vorgegeben. Das betrifft auch die Bezeichnung für den Account mit administrativen Berechtigungen. Auch die sonst übliche Bezeichnung root wird nicht angewendet.

Zweck

aktuelle Verwendung

frühere Verwendung

freebert

eventuelle Verwendung

Bedingt durch den häufigen Wechsel (Umziehen; Dienste zuschalten/testen/abschalten/vergessen) beim System und i.V.m. mangelnder Pflege der Dokumentation sind gewisse Verwendungen womöglich noch da.

Dieser Abschnitt soll nach Klärung für #aktuelle Verwendung und #frühere Verwendung wieder entfernt werden.
Ferner dient dieser Abschnitt als Erinnerung. Ja, das gehört eigentlich in die Diskussion:Server/storage
Dienste
  • DLNA Sharing
  • File Sharing
  • crontab:

<source lang=bash> 00 6 * * * root /usr/sbin/chown -R k-ot:k-ot /rpool </source>

Sotfware
  • minidlna
  • nfs(3)
  • samba(4)
  • ftp (in Arbeit)

Netzwerk

IP-Adresse

IPv6
2001:4dd0:fb82:c3d2::10
IPv4
172.22.99.10

c3d2-networking

Das Skript c3d2-networking unterstützt bei der Verwendung vom Server/storage (für smb, nfs, webdav, sshfs bei Debian GNU/Linux).

NFS

Exportieren von NFS

Stand
(vermutlich) 2014-05-01 für Server/freebert (bzw. Server/freebert/FreeBSD) und denau zu NFSv3
Exportieren von NFS bei FreeBSD
  • mit ZFS sharenfs
<source lang=bash>vi /etc/rc.conf</source>

<source lang=bash> rpcbind_enable="YES" nfs_server_enable="YES" mountd_flags="-r" rpc_lockd_enable="YES" rpc_statd_enable="YES" </source>

direkter ZFS Export

<source lang=bash>zfs set sharenfs="-maproot=root -network=172.22.0.0 -mask=255.255.0.0" zroot/storage/rpool</source>

Beispiel fstab

<source lang=bash>172.22.99.10:/mnt/zroot/storage/rpool /mnt/freebert.nfs nfs noauto,soft,noatime,acl,users,timeo=15 0 0</source>

ZFS Clone Stand: <source lang=bash>zfs clone zroot/storage/c3d2@_0009_system_07.04.2014 zroot/ezjail/storage.hq.c3d2.de/rpool</source>

Importieren von NFS

Importieren von NFS bei GNU/Linux
Installieren der notwendigen Pakete nfs-common und portmap
<source lang=bash>apt-get install nfs-common portmap</source>
Einhängen bei der lokale Maschine
am Beispiel der Daten vom gesamten Unterverzeichnis rpool auf dem Server/storage (mit der IP-Adresse 172.22.99.10)
<source lang=bash>mkdir /freebert-nfs</source>
<source lang=bash>showmount -e 172.22.99.10</source>
<source lang=bash>mount -t nfs 172.22.99.10:/mnt/zroot/storage/rpool /freebert-nfs -o soft,timeo=15,noatime</source>
Hinweise:
  • setting noatime is not recomended if you want to use mutt inside your nfs mountpoint

Erstellen eines Eintrages in der Datei /etc/fstab für Verfügbarkeit beim Befehl mount -a

<source lang=bash>vi /etc/fstab</source>
am Beispiel der Daten vom gesamten Unterverzeichnis rpool auf dem Server/storage (mit der IP-Adresse 172.22.99.10)

<source lang=bash> 172.22.99.10:/mnt/zroot/storage/rpool /freebert-nfs nfs noauto,user,soft,timeo=15,noatime 0 0 </source>

Importieren von NFS bei FreeBSD

Starten vom Dienst als Client für NFS

<source lang=bash>service nfsclient start</source>

Eintragung für das Einschalten vom Dienst als Client für NFS beim Start vom System

<source lang=bash>sysrc nfs_client_enable="YES"</source>
oder
<source lang=bash>$EDITOR /etc/rc.conf</source>

<source lang=bash> nfs_client_enable="YES" </source>

(möglicher Weise notwendiges) Erstellen eines Ordners für das Anbinden

<source lang=bash>mkdir -p /mnt/c3d2/rpool</source>

Anbinden vom Ordner rpool (vom Server/storage) ans eigene System

<source lang=bash>mount storage.hq.c3d2.de:/mnt/zroot/storage/rpool /mnt/c3d2/rpool</source>
<source lang=bash>ls /mnt/c3d2/rpool</source>
Importieren von NFS bei MacOS X
  • Finder -> Gehe zu -> Mit Server verbinden (Apfel+K)
    nfs://172.22.99.10/mnt/zroot/storage/rpool eintragen
bei Problemen mit Schreibrechten
<source lang=bash>mkdir freebert-nfs</source>
<source lang=bash>sudo mount -t nfs -o resvport,bg,nfc,nolocks,locallocks,intr,soft,wsize=32768,rsize=3276 172.22.99.10:/mnt/zroot/storage/rpool /Users/<DEIN NAME>/freebert-nfs</source>
Finder mit ROOT-Rechten!
<source lang=bash>sudo /System/Library/CoreServices/Finder.app/Contents/MacOS/Finder</source>
Importieren von NFS bei Windows 8
  • Systemsteuerung -> Programme und Features (aktivieren/deaktivieren) -> Dienste für NFS (Client/Verwaltung) installieren
  • Computer -> (Kontextmenü) Netzwerkadresse hinzufügen
    \\172.22.99.10\mnt\zroot\storage\rpool eintragen

WebDAV

mit einem Programm zur Dateiverwaltung
zum Beispiel Dolphin
webdav://storage.hq.c3d2.de:8080/rpool
mit einem Browser (Auslieferung per web server)
http://storage.hq.c3d2.de:8080/rpool
username
webdav
password
k-ot

Samba 4

Installieren von Samba 4

Installieren von Samba4 bei FreeBSD
Stand
(vermutlich) 2014-05-10 für Server/freebert (bzw. Server/freebert/FreeBSD)

Hinweise:

  • Samba 4.1 hat derzeit ein kaputtes s3fs, daher 4.0
<source lang=bash>cd /usr/ports/net/samba4/ && make install clean</source>

@HOST - Samba4 ADS sysvol Kompatibilität per UFS ZVOL

<source lang=bash>rm -rfv /usr/jails/storage.hq.c3d2.de/var/db/samba4</source>
<source lang=bash>zfs create -p -V 10g zroot/ezjail/storage.hq.c3d2.de/samba4db</source>
<source lang=bash>newfs -U -O2 /dev/zvol/zroot/ezjail/storage.hq.c3d2.de/samba4db</source>
<source lang=bash>mkdir /usr/jails/storage.hq.c3d2.de/var/db/samba4</source>
<source lang=bash>mount -o acls /dev/zvol/zroot/ezjail/storage.hq.c3d2.de/samba4db /usr/jails/storage.hq.c3d2.de/var/db/samba4</source>
<source lang=bash>zfs set aclmode=passthrough zroot/ezjail/storage.hq.c3d2.de/rpool</source>
<source lang=bash>zfs set aclinherit=passthrough zroot/ezjail/storage.hq.c3d2.de/rpool</source>


ZVOL auf dem FreeBSD HOST mounten lassen

<source lang=bash>vi /etc/fstab</source>

<source lang=bash>

  1. Device Mountpoint FStype Options Dump Pass#

/dev/gpt/swap0 none swap sw 0 0

  1. /dev/gpt/swap1 none swap sw 0 0
  2. /dev/gpt/swap2 none swap sw 0 0
  3. /dev/gpt/swap3 none swap sw 0 0
      1. ### ### C3D2 ### ### ###

proc /proc procfs rw 0 0 /dev/zvol/zroot/ezjail/storage.hq.c3d2.de/samba4db /usr/jails/storage.hq.c3d2.de/var/db/samba4 ufs rw,acls 1 1

      1. ### ### C3D2 ### ### ###
  1. EOF

</source>

Provisionieren von Samba4

  • angewendet bei FreeBSD
<source lang=bash>/usr/local/bin/samba-tool domain provision --use-rfc2307 --use-xattrs=yes --function-level=2008_R2 --realm=HQ.C3D2.DE --domain=HQ --adminpass='geheim' --server-role='dc' --dns-backend=SAMBA_INTERNAL</source>

Konfiguration von Samba4

  • angewendet bei FreeBSD
<source lang=bash>vi /usr/local/etc/smb4.conf</source>

<source lang=bash>

      1. ### ### C3D2 ### ### ###
  1. Global parameters

[global]

       workgroup = HQ
       realm = HQ.C3D2.DE
       netbios name = STORAGE
       server role = active directory domain controller
       idmap_ldb:use rfc2307 = yes
      1. dns forwarder = 172.22.99.51
       server services = -smb +s3fs -nbt
       dcerpc endpoint servers = -winreg -srvsvc
      1. ### ### C3D2 ### ### ###
       server string = %h - FreeBSD ZFS Server
       interfaces = 172.22.99.52
       bind interfaces only = Yes
       # disable printer support
       disable spoolss = Yes
       # allow dynamic dns update / true = nonsecure + signed
       allow dns updates = signed
       # freebsd specific
       nsupdate command = /usr/local/bin/samba-nsupdate -g
       # added to allow asynchronous I/O (make sure to load the kernel module aio)
       aio read size = 16384
       aio write size = 16384
      1. ### # server options
       server min protocol = NT1
       server max protocol = SMB3
       disable netbios = Yes
       smb ports = 445
       server signing = auto
       # protocol stream encryption for smbclient
       smb encrypt = auto
      1. ### # client options (for local services / smbclient etc.)
       client min protocol = NT1
       client max protocol = SMB3
       client ldap sasl wrapping = seal
       client signing = auto
       client schannel = auto
       lanman auth = No
       ntlm auth = No
       client use spnego = Yes
       client ntlmv2 auth = Yes
       client lanman auth = No
       client plaintext auth = No
      1. experimental ###
      2. dsdb:schema update allowed = Yes
      3. experimental ###
      1. ### ### C3D2 ### ### ###

[netlogon]

       path = /var/db/samba4/sysvol/hq.c3d2.de/scripts
       read only = No

browseable = no

[sysvol]

       path = /var/db/samba4/sysvol
       read only = No

browseable = no

      1. ### ### C3D2 ### ### ###

[rpool]

       path = /rpool

valid users = k-ot map acl inherit = yes browseable = yes public = yes writable = yes posix locking = yes create mask = 0664 directory mask = 0775 strict locking = no store dos attributes = yes

      1. nt acl support = yes
      2. csc policy = disable

inherit acls = Yes inherit owner = no inherit permissions = no map archive = No map readonly = no vfs objects = shadow_copy2, zfsacl nfs4:mode = special nfs4:acedup = merge nfs4:chown = yes

shadow: format = -CRON-%Y.%m.%d-%H.%M shadow: sort = desc shadow: snapdir = .zfs/snapshot

      1. ### ### C3D2 ### ### ###
  1. EOF

</source>

Samba4 Map Users to thier UNIX UID

<source lang=bash>id k-ot</source>

<source lang=bash> uid=1003(k-ot) gid=1003(k-ot) groups=1003(k-ot) </source>

<source lang=bash>samba-tool user add k-ot</source>

<source lang=bash> New Password: Retype Password: User 'k-ot' created successfully </source>

<source lang=bash>service samba_server start</source>

<source lang=bash> wbinfo --name-to-sid k-ot S-1-5-21-2260217406-2925069997-4078739481-1108 SID_USER (1)

wbinfo --sid-to-uid S-1-5-21-2260217406-2925069997-4078739481-1108 3000022 </source>

<source lang=bash>service samba_server stop</source>
<source lang=bash>ldbedit -e vi -H /var/db/samba4/private/idmap.ldb objectsid=S-1-5-21-2260217406-2925069997-4078739481-1108</source>

<source lang=bash> xidNumber: 1003

  1. 0 adds 1 modifies 0 deletes

</source>

<source lang=bash>/usr/local/bin/testparm</source>
<source lang=bash>samba-tool dbcheck</source>
<source lang=bash>samba-tool ntacl sysvolcheck</source>
Importieren von SMB bei GNU/Linux
<source lang=bash>sudo apt-get install cifs-utils</source>
<source lang=bash>sudo mkdir /freebert-storage</source>
<source lang=bash>sudo mount -t cifs //172.22.99.10/rpool /freebert-storage -o user=k-ot</source>

Daten

übliche Arten von Daten auf storage

Musik

Musik für cider

cider nutzt Dateien von storage als Quelle.

Filme

andere Dateien

Dateien für Installation von Betriebssystemen

Daten bereitstellen

DLNA

Berechtigungen für DLNA setzen

bei Änderungen / Upload bitte ein: <source lang=bash>chown 1003:1003: ~/file</source>

Index für Fernseher neu schreiben

Um die Datenbank (/var/db/minidlna/files.db) neu zu schreiben,

  • muss sie gelöscht/überschrieben werden;
  • darf der Service nicht aktiv sein;
  • braucht es einen Neustart, wobei sie neu geschrieben wird
    Das dauert zirka 20 min bei storage.

.

Dies wurde hier teilweise durch eine zweite Instanz umgangen.

das Script: unter /usr/local/bin/minidlna_scan: <source lang=bash>

  1. !/bin/sh
  2. simple but buggy
  3. service minidlna stop
  4. rm /var/db/minidlna/files.db
  5. service minidlna start
  6. should do like that
  7. configure 2nd service just for rescanning
  8. start service 2nd instance with another pid
  9. start for rescanning the filestructure
  10. stop 2nd service and delete pid
  11. copy files.db over the existing one
  12. send sighub to dlna-process to make him use the new files.db
      1. ### ### C3D2 ### ### ###

PID=($(ps -ax | grep "/var/run/minidlna/minidlna_scan.pid -R" | head -1 | awk '{print $1}'))

  1. stage0

/usr/local/sbin/minidlnad -u dlna -f /usr/local/etc/minidlna_scan.conf -P /var/run/minidlna/minidlna_scan.pid -R

  1. stage1
      1. ps -ax | grep "/var/run/minidlna/minidlna_scan.pid -R" | head -1 | awk '{print $1}' | xargs -L 1 kill -9
  2. stage2
  3. cp -prfv /var/db/minidlna_scan /var/db/minidlna
  4. stage3
  5. pkill -HUP /var/run/minidlna/minidlna.pid

while ps -p ${PID[*]}; do sleep 1; done ; cp -prfv /var/db/minidlna_scan/* /var/db/minidlna/; pkill -HUP /var/run/minidlna/minidlna.pid

      1. ### ### C3D2 ### ### ###
  1. EOF

</source>

Zugang

per ssh
wie üblich
per http
https://storage/
https://storage.hq.c3d2.de/
https://172.22.99.10/
http per ssh
<syntaxhighlight lang="ksh">ssh -L 10080:127.0.0.1:80 k-ot@storage.hq.c3d2.de</syntaxhighlight>
der lokale Port 10080 ist dabei (nahezu) frei wählbar
http://127.0.0.1:10080/
http://localhost:10080/

Siehe auch

foo im HQ

Server/storage ist Teil vom HQ. Mit der hier verwendeten Vorlage:foo im HQ sollst du eine Übersicht über andere wichtige Gegenstände im HQ bekommen.


Übersicht zu allen wichtigen Gegenständen im HQ (im Zentralwerk)
Raum im HQ Gegenstände
Hardware Sonstiges
Eingang zur Assembly

(Drucker) Xerox WorkCentre 7232#xeri · (Drucker) Xerox WorkCentre 7232#roxi

Staubsauger

Schlüsselkasten · HQ/Schalter · HQ/Klingel · keymatic

Elektroinstallation

Postregal

Assembly

Server/ciderServer/cibertServer/pulsebert · Server/glotzbert · Server/lisbeth

TV · Beamer
LED-Stripe
HDMI-Capturedevice

Thermodrucker · C3DDrkkr

(Computer/restbert) Lenovo ThinkPad#X230 restbert · (Computer/carbert) Lenovo ThinkPad#X230 carbert · (Computer/pestbert) Lenovo ThinkPad#T61 pestbert · (Computer/pubert) Lenovo ThinkPad#T61 pubert · (Computer/upbert) Lenovo ThinkPad#T61 upbert · (Computer/penbert) Lenovo ThinkPad#X60 penbert

Feinstaubsensor#indoor

Bibliothek (im Bücherregal) · Beratungstisch · Schreibtische · Sofaecke · Leinwand
Küche Matemat Matekasse · Küchenzeile · Kühlschrank (Mate)
Werkstatt

Computer/testbert · Computer/delbert

Nähmaschine Pfaffbert · Nähmaschine Singbert

Werkzeug · Array
Schrank für Projekte novena · Stempel
Netzteile · Labornetzteil
Verbrauchsmaterial
Backstage Server/dacbert · Computer/debbert · Computer/alpbert
vor den Fenstern Feinstaubsensor#outdoor
auf dem Gang

Serverschrank#links

(Server/server3) Lenovo ThinkServer RD220#Gerät 0 · Dell PowerVault MD1000#Gerät 0

Serverschrank#rechts

(Server/server1) HP ProLiant DL380 G7
(Server/server2) HP ProLiant DL160 G6
(Server/server5) Lenovo System x3250 M5
(Server/server6 · Server/server7) Supermicro 808-12
(Server/server8) FSC RX300 S6#Gerät 0 · (Server/server9) FSC RX300 S6#Gerät 1
Flyerständer
Keller

PC´s,Laptops,Netzteile,…

Server/storage
(Server/server3) Lenovo ThinkServer RD220#Gerät 1 · Dell PowerVault MD1000#Gerät 1

Officekram Bauzeugs
raumübergreifend HQ/NetzIntern:Zentralwerk/Netzwerk · HQ/Telefon · Heizung
(Seminarraum)
Dach Freifunk · Starlink