# Sharing unter ZFS - SAN Protkolle

Inhalt

<div class="level4" id="bkmrk-%C3%9Cbersicht-sharing-%28s">- <div class="li">Übersicht Sharing (Samba, NFS, iSCSI oder SSHFS)</div>
- <div class="li">NFS Sharing</div>
- <div class="li">Samba Sharing</div>
- <div class="li">iSCSI Sharing (unvollständig!)</div>
- <div class="li">Vergleich SAN Protokolle</div>
- <div class="li">Vergleich Fileserver Windows, UCS, TrueNAS und Zamba</div>

---

  
</div>## Übersicht Sharing (Samba, NFS, iSCSI oder SSHFS)

<div class="level2" id="bkmrk-samba-schnittstelle-"><div class="level2">- <div class="li">**Samba**</div>
    - <div class="li">Schnittstelle zum Anwender</div>
    - <div class="li">Für Filesharing</div>
    - <div class="li">Kompatibel mit allen Betriebsystemen</div>
    - <div class="li">Authentifizierung lokal oder AD</div>
    - <div class="li">Verschlüsselt</div>
    - <div class="li">Kein Routing sinnvoll möglich über NAT</div>
- <div class="li">**NFS**</div>
    - <div class="li">Schnittstelle zu iX Systemen (Linux, Mac, etc.)</div>
    - <div class="li">Einfachste Konfiguration und Absicherung (/etc/exports)</div>
    - <div class="li">Für Filesharing</div>
    - <div class="li">Schnell</div>
    - <div class="li">Einfach zu Mounten</div>
- <div class="li">**iSCSI**</div>
    - <div class="li">Komplex</div>
    - <div class="li">Für Blocksharing von u. a. Disks, LVM, ZVOLS</div>
    - <div class="li">Multipath</div>
    - <div class="li">HA+RR etc</div>
- <div class="li">**SSHFS**</div>
    - <div class="li">Filesharing via SSH</div>
    - <div class="li">Langsam</div>
    - <div class="li">Für ESXi ohne vCenter zur Migration</div>

</div></div><div class="level2" id="bkmrk--0">---

  
</div>
## NFS Sharing

Erzeugen Dataset und Mount unter */rpool/nfsshare*, ideal für *VMs* (raw, vmdk, qcpow2) oder *Files*:

```
zfs create rpool/nfsshare
```

Freigabe der Dateien:

```
zfs set sharenfs=on rpool/nfsshare
```

oder mit Zugriffsrechten aus dem Netz *192.168.11.0/24*:

```
zfs set sharenfs="rw=@192.168.11.0/24" rpool/nfsshare
```


#### Zugriffssteuerung

Vereinfacht für kompletten Share mit

```
chmod oder chown # nach Bedarf
```

Zugriffsteuerung per *Linux PAM* Benutzer mit Editieren der Datei `/etc/exports`

```
# freigabe1 wird für zwei Rechner freigegeben
# notebook darf nur lesen (ro)
# desktop darf lesen und schreiben (rw)
rpool/nfsshare     notebook(ro,async) desktop(rw,async)
```

oder kombiniert mit *IPs* oder *Netzwerken*

```
# Freigabe gilt nur für 192.168.1.13, jedoch nur mit Leserechten:
rpool/nfsshare     192.168.1.13(ro,async)
# Freigabe gilt für alle IPs von 192.168.1.1 bis 192.168.1.255, mit Lese-/Schreibrechten:
rpool/nfsshare       192.168.1.0/255.255.255.0(rw,async)
# Freigabe gilt nur für den Rechner mit dem Namen notebook
rpool/nfsshare     notebook(ro,async)
```

Bei Leistungsproblemen mit *NFS* kann man ggfs. *sync* deaktivieren mit `zfs set sync=disabled rpool/nfsshare`.  
Weitere Infos zu den Risiken gibt es bei [https://jrs-s.net/2019/07/20/zfs-set-syncdisabled/](https://jrs-s.net/2019/07/20/zfs-set-syncdisabled/ "https://jrs-s.net/2019/07/20/zfs-set-syncdisabled/").


#### Mounten von NFS Shares

<div class="level4" id="bkmrk-mount-in-proxmox-dat"><div class="level4">- <div class="li">Mount in Proxmox</div>
    - <div class="li">*Datacenter* &gt; *Storage* &gt; Taste *Add* &gt; NFS</div>
    - <div class="li">ID: Mount benennen „myNAS1“</div>
    - <div class="li">Server: IP Adresse des Server</div>
    - <div class="li">Export: Auswahl der NFS Freigabe (taucht auf bei erfolgreicher NFS-Verbindung)</div>
- <div class="li">VMware per Datastore Dialog</div>
- <div class="li">HyperV über Erweiterung Windows Funktionen</div>
- <div class="li">Linux</div>
    - <div class="li">`mkdir /mnt/nfsmount && mount -t nfs 192.168.0.100:/rpool/nfsshare /mnt/nfsshare`</div>
    - <div class="li">oder</div>
    - <div class="li">per fstab</div>
        - <div class="li">`192.168.0.100:/rpool/nfsshare /mnt/nfsshare nfs rw 0 0`</div>
    - <div class="li">wenn der umount mal scheitert:</div>
        - <div class="li">`umount -l /mnt/nfsshare #lazy umount`</div>

</div></div><div class="level4" id="bkmrk--5">---

</div>
## Samba Sharing

Erzeugen Dataset und Mount unter */rpool/smbshare*:

```
zfs create rpool/smbshare
```

Freigabe der Dateien:

```
zfs set sharesmb=on rpool/smbshare
chmod 777 /rpool/smbshare
```


#### Zugriffssteuerung

Vereinfachtes Sharing mit

```
smbpasswd -a root    # erzeugt Samba Passwort
chmod oder chown     # nach Bedarf
```

Detailliertere Zugriffsteuerung mit Editieren der Datei `/etc/samba/smb.conf`

```
[Global]
workgroup = workgroup security = user
map to guest = Bad Password

[homes]
comment = Home
Directories browsable = no
read only = no
create mode = 0777

[smbshare]
path = /rpool/smbshare
public = yes
writeable = yes
comment = smb
share printable = no
guest ok = yes
create mask = 0777
security mask = 0777
directory mask = 0777
force create mode = 0777
directory security mask = 0777
```

Kontrolle der effektiven Config `testparm` (zum Kontrollieren der effektiven Konfiguration)  
und Abschluss mit

```
service smbd restart
```


#### Zugriff auf SMB Freigaben

<div class="level4" id="bkmrk-windows%3A-%5C%5C%3Cip%3E%5Csmbs"><div class="level4">- <div class="li">Windows: `\\<IP>\smbshare`</div>
- <div class="li">macOS und Linux: `smb://<IP>/smbshare`</div>
- <div class="li">Nötige Erweiterung für Linux-Zugriff</div>
    - ```
        apt-get install cifs-utils
        mkdir /mnt/smbshare
        mount -t cifs //ip/smbshare /mnt/smbshare #username=root
        ```
    - <div class="li">per fstab</div>
        - <div class="li">`ip/smbshare /mnt/smbshare cifs iocharset=utf8 0 0`</div>

</div></div>[hoch](https://wiki.cloudistboese.de/doku.php?id=wikiintern:zfssharing#zsh_inhalt "wikiintern:zfssharing ↵")

<div class="level4" id="bkmrk--9">---

  
</div>
## iSCSI Sharing

Unvollständig

Erzeugen Dataset und Mount unter */rpool/iscsishare*:

```
zfs create rpool/iscsishare
```

Freigabe der Dateien:

???


#### Zugriffssteuerung

Vereinfachtes Sharing mit

???

Detailliertere Zugriffsteuerung mit Editieren der Datei `/etc/???`


#### Zugriff auf SMB Freigaben

<div class="level4" id="bkmrk-windows%3A-proxmox%3A-ma"><div class="level4">- <div class="li">Windows:</div>
- <div class="li">Proxmox:</div>
- <div class="li">macOS und Linux:</div>
- <div class="li">Nötige Erweiterung für Linux-Zugriff</div>
    - ```
        ???
        ```
    - <div class="li">per fstab</div>
        - <div class="li">???</div>

</div></div>
## Vergleich SAN Protokolle

<div class="level2" id="bkmrk-vorteile-nfs-schlank"><div class="level2">- <div class="li">**Vorteile NFS**</div>
    - <div class="li">schlank</div>
    - <div class="li">einfach</div>
    - <div class="li">übersichlich bei Fehlersuche</div>
    - <div class="li">schnell</div>
- <div class="li">**Nachteile NFS**</div>
    - <div class="li">Wenig Funktionen</div>
    - <div class="li">kein Multipath (Gleichzeitiger Zugriff von mehreren Servern)</div>
    - <div class="li">kein Sharing von Volumes</div>
    - <div class="li">keine UUID (eindeutige Identifizierung)</div>
- <div class="li">**Vorteile iSCSI**</div>
    - <div class="li">Multipath</div>
    - <div class="li">HA</div>
    - <div class="li">Sharing von Volumes</div>
    - <div class="li">Blockgrößen und etliche Paramter</div>
    - <div class="li">Eindeutige Identifizierung</div>
    - <div class="li">Hoher Funktionsumfang</div>
- <div class="li">**Nachteile iSCSI**</div>
    - <div class="li">aufwendiges Setup</div>
    - <div class="li">schwierige Fehlersuche</div>
    - <div class="li">schlechte Integration PVE</div>

</div></div>
## Vergleich Fileserver Windows, UCS, TrueNAS und Zamba

<div class="level2" id="bkmrk-windows-natives-smb-"><div class="level2">- <div class="li">**Windows**</div>
    - <div class="li">Natives SMB</div>
    - <div class="li">Kritischer Windows Unterbau</div>
    - <div class="li">Partitionierung notwendig</div>
    - <div class="li">NTFS Probleme</div>
    - <div class="li">Kein ZFS, dafür wenige Wiederherstellungspunkte möglich</div>
- <div class="li">**Univention**</div>
    - <div class="li">Klassiches, aktuelles Samba</div>
    - <div class="li">Umfangreiches System als Unterbau</div>
    - <div class="li">LVM bei Kapaziätserweiterung notwenidg</div>
    - <div class="li">EXT4</div>
    - <div class="li">Kein ZFS, keine Schattenkopien</div>
- <div class="li">**TrueNAS**</div>
    - <div class="li">Volle <abbr title="Graphical User Interface">GUI</abbr>, ZFS und Replikationen, Monitoring</div>
    - <div class="li">Extra Hardware</div>
    - <div class="li">Läuft direkt auf Hardware, daher schnell</div>
- <div class="li">**Zamba**</div>
    - <div class="li">Schnelle Bereitstellung per LXC</div>
    - <div class="li">Schlank und schnell, da quasi direkt auf ZFS</div>
    - <div class="li">Schattenkopien so viele man möchte</div>
    - <div class="li">ZFS <abbr title="Graphical User Interface">GUI</abbr> via Cockpit, Wiederherstellung via Windows-Explorer</div>
    - <div class="li">Erste Wahl bei Einsatz von Debian oder Proxmox</div>

</div></div>[hoch](https://wiki.cloudistboese.de/doku.php?id=wikiintern:zfssharing#zsh_inhalt "wikiintern:zfssharing ↵")

— *[Andi Treml](mailto:info@tremlnet.de "info@tremlnet.de") 2021/05/15 14:33-16:*