Benutzer-Werkzeuge

Webseiten-Werkzeuge


computer:zfs-storage_unter_debian_squeeze

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
computer:zfs-storage_unter_debian_squeeze [2011/02/09 23:57]
christian angelegt
— (aktuell)
Zeile 1: Zeile 1:
-Debian GNU/​kFreeBSD (//​**k**ernel of FreeBSD//) stellt ein Debian-Derivat mit FreeBSD-Kernel dar. Das erste Release erschien vor kurzem mit Debian Squeeze, verfügt über den Kernel von FreeBSD 8.1 und unterstützt daher ZFS in der Pool-Version v14. 
  
-======Kurzübersicht über ZFS====== 
-Gegenüber bestehenden Software-RAID- und LVM-Systemen stellt ZFS einen sehr interessanten und professionellen Lösungsansatz dar. ZFS ist ein 128-bit Dateisystem,​ kann theoretisch bis zu 16 Exabyte adressieren und vereint im Wesentlichen logische Partitions- und Volumenverwaltung sowie ein RAID-Subsystem. Zur Auswahl stehen: 
- 
-  * RAID 0 - Striping 
-  * RAID 1 - Mirroring 
-  * RAID Z-1 - 1x Parität (//​RAID-5//​) 
-  * RAID Z-2 - 2x Parität (//​RAID-6//​) 
-  * RAID Z-3 - 3x Parität 
- 
-ZFS ist sehr leicht zu administrieren und somit ideal für sämtliche Einsatzgebiete. Nicht nur im Rechenzentrum erfreut sich ZFS großer Beliebtheit - auch im Heimbereich (//​Eigenbau-NAS//​) ist es einsetzbar. Interessant sind auch professionelle Funktionen, wie beispielsweise Deduplizierung,​ die dafür sorgt, dass mehrfach abgelegte Dateien nur einmal Platz in Anspruch nehmen. Differenzen zwischen den "nach Außen hin" gesicherten Dateien werden in Form von inkrementellen Snapshots gesichert. 
- 
- 
-======Idee====== 
-Als plausibles Beispiel dient hier ein Eigenbau-NAS. Es soll Nutzdaten in einem RAID-5 Verbund sichern und mittels Samba dem Heimnetzwerk zur Verfügung stellen. 
- 
- 
-======Konfiguration====== 
-Die Installation von Debian GNU/​kFreeBSD ist relativ simple, wie vorherige Debian-Installationen. Dieser Vorgang ist nicht Bestandteil dieses Artikels. Nach der Installation und dem daraus resultierenden Reboot befindet man sich auf der ersten Konsole des brandneuen Debian-Systems mit FreeBSD-Unterbau. 
- 
-Zuerst ist wichtig, dass alle Festplatten erkannt wurden (//hier 6 virtuelle Festplatten//​) 
- 
-<​code>​ 
-root@vm-debsqueeze:​~#​ dmesg 
-... 
-da0 at mpt0 bus 0 scbus0 target 0 lun 0 
-da0: <VMware, VMware Virtual S 1.0> Fixed Direct Access SCSI-2 device 
-da0: 320.000MB/s transfers (160.000MHz DT, offset 127, 16bit) 
-da0: Command Queueing enabled 
-da0: 1048576MB (2147483648 512 byte sectors: 255H 63S/T 133674C) 
-da1 at mpt0 bus 0 scbus0 target 1 lun 0 
-da1: <VMware, VMware Virtual S 1.0> Fixed Direct Access SCSI-2 device 
-da1: 320.000MB/s transfers (160.000MHz DT, offset 127, 16bit) 
-da1: Command Queueing enabled 
-da1: 1048576MB (2147483648 512 byte sectors: 255H 63S/T 133674C) 
-da2 at mpt0 bus 0 scbus0 target 2 lun 0 
-da2: <VMware, VMware Virtual S 1.0> Fixed Direct Access SCSI-2 device 
-da2: 320.000MB/s transfers (160.000MHz DT, offset 127, 16bit) 
-da2: Command Queueing enabled 
-da2: 1048576MB (2147483648 512 byte sectors: 255H 63S/T 133674C) 
-da3 at mpt0 bus 0 scbus0 target 3 lun 0 
-da3: <VMware, VMware Virtual S 1.0> Fixed Direct Access SCSI-2 device 
-da3: 320.000MB/s transfers (160.000MHz DT, offset 127, 16bit) 
-da3: Command Queueing enabled 
-da3: 1048576MB (2147483648 512 byte sectors: 255H 63S/T 133674C) 
-da4 at mpt0 bus 0 scbus0 target 4 lun 0 
-da4: <VMware, VMware Virtual S 1.0> Fixed Direct Access SCSI-2 device 
-da4: 320.000MB/s transfers (160.000MHz DT, offset 127, 16bit) 
-da4: Command Queueing enabled 
-da4: 1048576MB (2147483648 512 byte sectors: 255H 63S/T 133674C) 
-da5 at mpt0 bus 0 scbus0 target 5 lun 0 
-da5: <VMware, VMware Virtual S 1.0> Fixed Direct Access SCSI-2 device 
-da5: 320.000MB/s transfers (160.000MHz DT, offset 127, 16bit) 
-da5: Command Queueing enabled 
-da5: 1048576MB (2147483648 512 byte sectors: 255H 63S/T 133674C) 
-</​code>​ 
- 
-Die Erstellung des Pools ist kinderleicht! Mit einem Befehl werden alle Festplatten zu neuen Pool namens "//​pool0//"​ hinzugefügt:​ 
- 
-<​code>​root@vm-debsqueeze:​~#​ zpool create pool0 raidz /​dev/​da{0,​1,​2,​3,​4,​5}</​code>​ 
- 
-Ein kleiner Blick in den Pool mit **zpool** zeigt, dass alle Festplatten eingebunden wurden: 
-<​code>​ 
-root@vm-debsqueeze:​~#​ zpool status pool0 
-  pool: pool0 
- ​state:​ ONLINE 
- ​scrub:​ none requested 
-config: 
- 
-        NAME        STATE     READ WRITE CKSUM 
-        pool0       ​ONLINE ​      ​0 ​    ​0 ​    0 
-          raidz1 ​   ONLINE ​      ​0 ​    ​0 ​    0 
-            da0     ​ONLINE ​      ​0 ​    ​0 ​    0 
-            da1     ​ONLINE ​      ​0 ​    ​0 ​    0 
-            da2     ​ONLINE ​      ​0 ​    ​0 ​    0 
-            da3     ​ONLINE ​      ​0 ​    ​0 ​    0 
-            da4     ​ONLINE ​      ​0 ​    ​0 ​    0 
-            da5     ​ONLINE ​      ​0 ​    ​0 ​    0 
- 
-errors: No known data errors 
-</​code>​ 
- 
-Ein weiterer Blick auf die Pools mithilfe **zpool** zeigt den verfügbaren Speicherplatz:​ 
- 
-<​code>​ 
-root@vm-debsqueeze:​~#​ zpool list 
-NAME    SIZE   ​USED ​ AVAIL    CAP  HEALTH ​ ALTROOT 
-pool0  6,00T   ​146K ​ 6,00T     ​0% ​ ONLINE ​ - 
-</​code>​ 
- 
-Der Mountpoint des Pools wird der Übersicht halber nun noch geändert, aktuell befindet er sich direkt auf Root-Ebene: 
- 
-<​code>​ 
-root@vm-debsqueeze:​~#​ zfs get mountpoint pool0 
-NAME   ​PROPERTY ​   VALUE       ​SOURCE 
-pool0  mountpoint ​ /​pool0 ​     default 
-root@vm-debsqueeze:​~#​ mkdir /​mnt/​storage 
-root@vm-debsqueeze:​~#​ zfs set mountpoint=/​mnt/​storage pool0 
-root@vm-debsqueeze:​~#​ zfs get mountpoint pool0 
-NAME   ​PROPERTY ​   VALUE         ​SOURCE 
-pool0  mountpoint ​ /​mnt/​storage ​ local 
-</​code>​ 
- 
- 
-=====Samba-Freigabe===== 
-<​code>​ 
-Paketlisten werden gelesen... Fertig 
-Abhängigkeitsbaum wird aufgebaut 
-Statusinformationen werden eingelesen... Fertig 
-Die folgenden zusätzlichen Pakete werden installiert:​ 
-... 
-Möchten Sie fortfahren [J/n]? j 
-... 
- 
-root@vm-debsqueeze:​~#​ mv /​etc/​samba/​smb.conf /​etc/​samba/​smb.conf.old 
-root@vm-debsqueeze:​~#​ nano /​etc/​samba/​smb.conf 
-</​code>​ 
- 
-<​code>​ 
-[global] 
-        workgroup = TEST 
-        server string = Test-NAS 
-        obey pam restrictions = Yes 
-        passdb backend = tdbsam 
-        pam password change = Yes 
-        passwd program = /​usr/​bin/​passwd %u 
-        passwd chat = *Enter\snew\s*\spassword:​* %n\n *Retype\snew\s*\spassword:​* %n\n *password\supdated\ssuccessfully* . 
-        unix password sync = Yes 
-        syslog = 0 
-        log file = /​var/​log/​samba/​log.%m 
-        max log size = 1000 
-        dns proxy = No 
-        panic action = /​usr/​share/​samba/​panic-action %d 
- 
-[homes] 
-        comment = Home Directories 
-        valid users = %S 
-        create mask = 0700 
-        directory mask = 0700 
-        browseable = No 
- 
-[storage] 
-        comment = Storage 
-        path = /​mnt/​storage 
-        read only = No 
-        locking = No 
-</​code>​ 
- 
-**Testparm** verrät jetzt noch, ob der Syntax der Datei korrekt ist: 
- 
-<​code>​ 
-root@vm-debsqueeze:​~#​ testparm 
-Load smb config files from /​etc/​samba/​smb.conf 
-Processing section "​[homes]"​ 
-Processing section "​[storage]"​ 
-Loaded services file OK. 
-Server role: ROLE_STANDALONE 
-Press enter to see a dump of your service definitions 
-... 
-</​code>​ 
- 
-Der Übersichtlichkeit halber werden die Dateirechte für einen Benutzer gesetzt - er erhält auch ein Samba-Passwort,​ um auf die Netzwerkfreigabe zugreifen zu können. Anschließend wird der Samba-Daemon neugestartet,​ um die Änderungen zu übernehmen:​ 
- 
-<​code>​ 
-root@vm-debsqueeze:​~#​ smbpasswd -a christian 
-New SMB password: 
-Retype new SMB password: 
-root@vm-debsqueeze:​~#​ chown christian /​mnt/​storage 
-root@vm-debsqueeze:​~#​ chgrp christian /​mnt/​storage 
-root@vm-debsqueeze:​~#​ chown christian /​mnt/​storage/​* -Rf 
-root@vm-debsqueeze:​~#​ chgrp christian /​mnt/​storage/​* -Rf 
-root@vm-debsqueeze:​~#​ chmod 775 /​mnt/​storage/​* -Rf 
-root@vm-debsqueeze:​~#​ /​etc/​init.d/​samba restart 
-Stopping Samba daemons: nmbd smbd. 
-Starting Samba daemons: nmbd smbd. 
-</​code>​ 
- 
- 
-======Rudimentäre Administration====== 
-=====Pool löschen====== 
-<​code>​ 
-root@vm-debsqueeze:​~#​ zpool destroy pool0 
-root@vm-debsqueeze:​~#​ zpool list 
-no pools available 
-</​code>​ 
- 
-=====Pool erstellen===== 
-<​code>​ 
-root@vm-debsqueeze:​~#​ zpool destroy pool0 
-root@vm-debsqueeze:​~#​ zpool list 
-no pools available 
-</​code>​ 
- 
- 
- 
-=====Pool erstellen===== 
-====Striping (RAID-0)==== 
-<​code>​root@vm-debsqueeze:​~#​ zpool create pool0 /​dev/​da{0,​1,​2,​3,​4,​5} 
-root@vm-debsqueeze:​~#​ zpool status pool0 
-  pool: pool0 
- ​state:​ ONLINE 
- ​scrub:​ none requested 
-config: 
- 
-        NAME        STATE     READ WRITE CKSUM 
-        pool0       ​ONLINE ​      ​0 ​    ​0 ​    0 
-          da0       ​ONLINE ​      ​0 ​    ​0 ​    0 
-          da1       ​ONLINE ​      ​0 ​    ​0 ​    0 
-          da2       ​ONLINE ​      ​0 ​    ​0 ​    0 
-          da3       ​ONLINE ​      ​0 ​    ​0 ​    0 
-          da4       ​ONLINE ​      ​0 ​    ​0 ​    0 
-          da5       ​ONLINE ​      ​0 ​    ​0 ​    0 
- 
-errors: No known data errors</​code>​ 
- 
- 
- 
-====Mirroring (RAID-1)==== 
-<​code>​root@vm-debsqueeze:​~#​ zpool create pool0 mirror /dev/da0 /dev/da1 
-root@vm-debsqueeze:​~#​ zpool status pool0 
-  pool: pool0 
- ​state:​ ONLINE 
- ​scrub:​ none requested 
-config: 
- 
-        NAME        STATE     READ WRITE CKSUM 
-        pool0       ​ONLINE ​      ​0 ​    ​0 ​    0 
-          mirror ​   ONLINE ​      ​0 ​    ​0 ​    0 
-            da0     ​ONLINE ​      ​0 ​    ​0 ​    0 
-            da1     ​ONLINE ​      ​0 ​    ​0 ​    0 
- 
-errors: No known data errors 
-root@vm-debsqueeze:​~#​ zpool list 
-NAME    SIZE   ​USED ​ AVAIL    CAP  HEALTH ​ ALTROOT 
-pool0  1022G  79,5K  1022G     ​0% ​ ONLINE ​ -</​code>​ 
- 
- 
- 
-====RAID-Z1 (~RAID-5)==== 
-<​code>​root@vm-debsqueeze:​~#​ zpool create pool0 raidz /​dev/​da{0,​1,​2,​3,​4,​5} 
-root@vm-debsqueeze:​~#​ zpool status pool0 
-  pool: pool0 
- ​state:​ ONLINE 
- ​scrub:​ none requested 
-config: 
- 
-        NAME        STATE     READ WRITE CKSUM 
-        pool0       ​ONLINE ​      ​0 ​    ​0 ​    0 
-          raidz1 ​   ONLINE ​      ​0 ​    ​0 ​    0 
-            da0     ​ONLINE ​      ​0 ​    ​0 ​    0 
-            da1     ​ONLINE ​      ​0 ​    ​0 ​    0 
-            da2     ​ONLINE ​      ​0 ​    ​0 ​    0 
-            da3     ​ONLINE ​      ​0 ​    ​0 ​    0 
-            da4     ​ONLINE ​      ​0 ​    ​0 ​    0 
-            da5     ​ONLINE ​      ​0 ​    ​0 ​    0 
- 
-errors: No known data errors 
-root@vm-debsqueeze:​~#​ zpool list 
-NAME    SIZE   ​USED ​ AVAIL    CAP  HEALTH ​ ALTROOT 
-pool0  6,00T   ​141K ​ 6,00T     ​0% ​ ONLINE ​ -</​code>​ 
- 
- 
- 
-====RAID-Z2 (~RAID-6)==== 
-<​code>​root@vm-debsqueeze:​~#​ zpool create pool0 raidz2 /​dev/​da{0,​1,​2,​3,​4,​5} 
-root@vm-debsqueeze:​~#​ zpool status pool0 
-  pool: pool0 
- ​state:​ ONLINE 
- ​scrub:​ none requested 
-config: 
- 
-        NAME        STATE     READ WRITE CKSUM 
-        pool0       ​ONLINE ​      ​0 ​    ​0 ​    0 
-          raidz2 ​   ONLINE ​      ​0 ​    ​0 ​    0 
-            da0     ​ONLINE ​      ​0 ​    ​0 ​    0 
-            da1     ​ONLINE ​      ​0 ​    ​0 ​    0 
-            da2     ​ONLINE ​      ​0 ​    ​0 ​    0 
-            da3     ​ONLINE ​      ​0 ​    ​0 ​    0 
-            da4     ​ONLINE ​      ​0 ​    ​0 ​    0 
-            da5     ​ONLINE ​      ​0 ​    ​0 ​    0 
- 
-errors: No known data errors 
-root@vm-debsqueeze:​~#​ zpool list 
-NAME    SIZE   ​USED ​ AVAIL    CAP  HEALTH ​ ALTROOT 
-pool0  6,00T   ​207K ​ 6,00T     ​0% ​ ONLINE ​ -</​code>​ 
- 
- 
- 
-=====Spare hinzufügen====== 
-Spares sind Festplatten,​ die dann verwendet werden, wenn eine der Festplatten aus dem Verbund ausfallen. Ein plausibles Beispiel wäre ein RAID-5-Verbund,​ bestehend aus 5 Festplatten,​ mit einer Festplatte als Spare, die im Fehlerfall einspringt. 
- 
-<​code>​ 
-root@vm-debsqueeze:​~#​ zpool create pool0 raidz /​dev/​da{0,​1,​2,​3,​4} 
-root@vm-debsqueeze:​~#​ zpool add pool0 spare /dev/da5 
-root@vm-debsqueeze:​~#​ zpool status pool0 
-  pool: pool0 
- ​state:​ ONLINE 
- ​scrub:​ none requested 
-config: 
- 
-        NAME        STATE     READ WRITE CKSUM 
-        pool0       ​ONLINE ​      ​0 ​    ​0 ​    0 
-          raidz1 ​   ONLINE ​      ​0 ​    ​0 ​    0 
-            da0     ​ONLINE ​      ​0 ​    ​0 ​    0 
-            da1     ​ONLINE ​      ​0 ​    ​0 ​    0 
-            da2     ​ONLINE ​      ​0 ​    ​0 ​    0 
-            da3     ​ONLINE ​      ​0 ​    ​0 ​    0 
-            da4     ​ONLINE ​      ​0 ​    ​0 ​    0 
-        spares 
-          da5       AVAIL 
- 
-errors: No known data errors 
-root@vm-debsqueeze:​~#​ zpool list 
-NAME    SIZE   ​USED ​ AVAIL    CAP  HEALTH ​ ALTROOT 
-pool0  5,00T   ​150K ​ 5,00T     ​0% ​ ONLINE ​ - 
-</​code>​ 
- 
- 
- 
-======Internet-Verweise====== 
-  * Projektseite von Debian GNU/​kFreeBSD:​ http://​wiki.debian.org/​Debian_GNU/​kFreeBSD 
-  * Wikipedia-Artikel über ZFS: http://​de.wikipedia.org/​wiki/​ZFS_%28Dateisystem%29 
-  * OpenSolaris-Artikel über ZFS: http://​hub.opensolaris.org/​bin/​view/​Community+Group+zfs/​WebHome 
computer/zfs-storage_unter_debian_squeeze.1297292272.txt.gz · Zuletzt geändert: 2011/02/09 23:57 von christian