Server/storage

Aus C3D2
Wechseln zu: Navigation, Suche

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 vom FreeNAS

Dienste mit dem FreeNAS

Container

Jails

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

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

  • "traditionelle" Jails
    Mit wenigen kleinen Ausnahmen handelt es sich um eine Jail, wie sie auch bei FreeBSD üblich ist.
  • Jails mit einer bestimmten "Vorlage"
    Speziell für besondere Dienste, denen Einrichtung insbesondere komplex sind, bietet FreeNAS von durch eine Vorlage vorgefertigte Jails.
  • Plugins
    Sogenannte Plugins verwenden das Prinzip für Container mit Jails, sind als auch als #Jails von storage zu betrachten.

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:
00      6       *       *       *       root    /usr/sbin/chown -R k-ot:k-ot /rpool
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
vi /etc/rc.conf
rpcbind_enable="YES"
nfs_server_enable="YES"
mountd_flags="-r"
rpc_lockd_enable="YES"
rpc_statd_enable="YES"

direkter ZFS Export

zfs set sharenfs="-maproot=root -network=172.22.0.0 -mask=255.255.0.0" zroot/storage/rpool

Beispiel fstab

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

ZFS Clone Stand:

zfs clone zroot/storage/c3d2@_0009_system_07.04.2014 zroot/ezjail/storage.hq.c3d2.de/rpool

Importieren von NFS

Importieren von NFS bei GNU/Linux
Installieren der notwendigen Pakete nfs-common und portmap
apt-get install nfs-common portmap
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)
mkdir /freebert-nfs
showmount -e 172.22.99.10
mount -t nfs 172.22.99.10:/mnt/zroot/storage/rpool /freebert-nfs -o soft,timeo=15,noatime
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

vi /etc/fstab
am Beispiel der Daten vom gesamten Unterverzeichnis rpool auf dem Server/storage (mit der IP-Adresse 172.22.99.10)
172.22.99.10:/mnt/zroot/storage/rpool                                           /freebert-nfs nfs noauto,user,soft,timeo=15,noatime 0       0
Importieren von NFS bei FreeBSD

Starten vom Dienst als Client für NFS

service nfsclient start

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

sysrc nfs_client_enable="YES"
oder
$EDITOR /etc/rc.conf
nfs_client_enable="YES"

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

mkdir -p /mnt/c3d2/rpool

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

mount storage.hq.c3d2.de:/mnt/zroot/storage/rpool /mnt/c3d2/rpool
ls /mnt/c3d2/rpool
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
mkdir freebert-nfs
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
Finder mit ROOT-Rechten!
sudo /System/Library/CoreServices/Finder.app/Contents/MacOS/Finder
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
cd /usr/ports/net/samba4/ && make install clean

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

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


ZVOL auf dem FreeBSD HOST mounten lassen

vi /etc/fstab
# Device                Mountpoint      FStype  Options         Dump    Pass#
/dev/gpt/swap0          none    swap    sw              0       0
#/dev/gpt/swap1         none    swap    sw              0       0
#/dev/gpt/swap2         none    swap    sw              0       0
#/dev/gpt/swap3         none    swap    sw              0       0
### ### ### 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
### ### ### C3D2 ### ### ###
# EOF

Provisionieren von Samba4

  • angewendet bei FreeBSD
/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

Konfiguration von Samba4

  • angewendet bei FreeBSD
vi /usr/local/etc/smb4.conf
### ### ### C3D2 ### ### ###

# Global parameters
[global]
        workgroup = HQ
        realm = HQ.C3D2.DE
        netbios name = STORAGE
        server role = active directory domain controller
        idmap_ldb:use rfc2307 = yes
### dns forwarder = 172.22.99.51

        server services = -smb +s3fs -nbt
        dcerpc endpoint servers = -winreg -srvsvc

### ### ### 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

### ### # 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

### ### # 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

### experimental ###
###
### dsdb:schema update allowed = Yes
###
### experimental ###

#
### ### ### 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

### ### ### 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

### nt acl support = yes
### 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

### ### ### C3D2 ### ### ###
# EOF

Samba4 Map Users to thier UNIX UID

id k-ot
uid=1003(k-ot) gid=1003(k-ot) groups=1003(k-ot)
samba-tool user add k-ot
New Password: 
Retype Password: 
User 'k-ot' created successfully
service samba_server start
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
service samba_server stop
ldbedit -e vi -H /var/db/samba4/private/idmap.ldb objectsid=S-1-5-21-2260217406-2925069997-4078739481-1108
xidNumber: 1003

# 0 adds  1 modifies  0 deletes
/usr/local/bin/testparm
samba-tool dbcheck
samba-tool ntacl sysvolcheck
Importieren von SMB bei GNU/Linux
sudo apt-get install cifs-utils
sudo mkdir /freebert-storage
sudo mount -t cifs //172.22.99.10/rpool /freebert-storage -o user=k-ot

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:

chown 1003:1003: ~/file
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:

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

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

# stage0
/usr/local/sbin/minidlnad -u dlna -f /usr/local/etc/minidlna_scan.conf -P /var/run/minidlna/minidlna_scan.pid -R
# stage1
### ps -ax | grep "/var/run/minidlna/minidlna_scan.pid -R" | head -1 | awk '{print $1}' | xargs -L 1 kill -9
# stage2
#cp -prfv /var/db/minidlna_scan /var/db/minidlna
# stage3
#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

### ### ### C3D2 ### ### ###
# EOF

Zugang

per ssh
wie üblich
per http
https://storage/
https://storage.hq.c3d2.de/
https://172.22.99.10/
http per ssh
ssh -L 10080:127.0.0.1:80 k-ot@storage.hq.c3d2.de
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
Raum im HQ Gegenstände
Hardware Sonstiges
proc Server/cider · Server/dogbert (Router) · Server/glotzbert · ODROID-C1 · ODYS Genio · Computer/debbert · Computer/pestbert · denkende Bretter zum Bohren · Thermodrucker · TV · LED-Stripe Bibliothek · HQ/Klingel · Küche · Kühlschrank (Mate)
Zauberwerkstatt Router tasche
Schrank für Projekte novena · Stempel
Netzteile · Labornetzteil
Werkzeug für feines, Tape deck
Dreckwerkstatt Router teig Werkzeug für grobes
Flur Serverschrank Drucker · Server/flatbert · Server/storage
HQ/Schalter
Booksharing · Kicker
Schrank am /proc Staubsauger
raumübergreifend HQ/Netz · HQ/Telefon · Jabber

Übersicht zu allen wichtigen Gegenständen im HQ (im Zentralwerk)
Raum im HQ Gegenstände
Hardware Sonstiges
proc Server/cider · Server/glotzbert · TV · Thermodrucker · Beamer Beratungstisch · Schreibtische · Sofaecke · Leinwand
Werkstattecke Server/server3 · Server/server4
Gang

Serverschrank Server/flatbert · Server/storage
Serverschrank Server/server1 · Server/server2

im Treppenhaus Kicker
Eingang Schrank am proc Staubsauger
Küchenecke Küchenzeile