Sammelthread: Eigenbau NAS / Heimserver / Storagesysteme

IronEagle

Active member
Themenstarter
Registriert
17 Juni 2006
Beiträge
3.027
Da mein "9 TB NAS"-Verkaufsthread zu vielen Fragen und fachlichen Diskussionen gefuehrt hat mache ich mal diesen Thread hier auf :-) Ich hoffe auf regen Erfahrungsaustausch, und stelle als erstes mal meinen aktuellen "SOHO" Storageserver vor:

http://cyberdelia.de/computer/darkland.html

Derzeit 10 TB Brutto-Kapazitaet mit Luft nach oben, bei ausgezeichneten Leistungsdaten/Energieeffizienz. Zu einem Preis mit dem QNAP und co kaum mithalten koennen :-)

Als Backup-Server habe ich gestern einen HP N36L bestellt, und berichte sobald ich ihn eingerichtet habe.


Die letzte unbeantwortete Frage im Verkaufsthread war wie ich das Thema "Passwort-Eingabe fuers verschluesselte Raid" geloest habe: ganz simpel eigentlich - das eigentliche OS bootet ganz normal von der SSD. Da kann ich mich dann einloggen und starte ein kleines Script was das dmcrypt aktiviert, lvm rescan macht und die Volumes dann mounted.
 
Zuletzt bearbeitet:
So,

habe jetzt bestellt. Wurde jetzt doch ein Intel XEON E3-1240, Tyan S5512WGM2NR (6 SATA + 8 SAS), 16GB Kingston Value RAM ECC. Insgesamt in der ersten Ausbaustufe 6x 2TB Western Digital WD20EARX (RAID 5 oder 6, muss mich noch entscheiden). Als Systemplatte dann wahrscheinlich meine 320GB 2.5" aus meinem X220 oder 2x 1TB Western Digital im RAID 1...

Ich werde dann weiter berichten... Aufbau, Installation usw.
Warum so viel Geld ausgeben und dann an der Systemplatte sparen? Da würde ich an eine kleine SSD denken - die hast du ja fast schon bezahlt, wenn du die 320 GB bei den aktuellen Preisen verkaufst.
 
Hi,

das stimmt. Hatte die Preise der kleinen SSD's garnicht mehr auf dem Schirm.

edit: Habe mir jetzt die Kingston 16GB dazu bestellt :)
 
Zuletzt bearbeitet:
Paket pm-utils muss drauf sein, dann geht es (als Root) per
Code:
pm-suspend

Danke, hab die Pakete grade per apt-get installiert und schau mal daheim. Hab dazu echt _NIX_ gefunden im Netz, deswegen tausend Dank an dich. Wäre cool wenn das klappt, dann kann ich endlich WOL triggern :thumbsup:
 
Sorry, zu spät :/ Aber bezüglich Dateisystem... ext4 sollte vollkommen okay sein. Lese überall dass das all-mighty ZFS ja so krieg ist!
 
Auch wenn ich ZFS bisher nicht probiert habe, klingt es von der Beschreibung her super! Wenn ich könnte, würde ich es einsetzen - aber ZFS gibt es nicht für Linux ;) BTRFS wird glaube ich hervorragend. Eine richtige eierlegende Wollmilchsau. Und sobald die Funktionen integriert sind, die es eben gerade zu dieser eierlegenden Wollmilchsau machen, werde ich wohl wechseln. Noch fehlen aber eben gerade diese Funktionen... So lange bleibe ich bei XFS für mein Daten-RAID und ext4 fürs System.
 
Nunja, ZFS gibt es schon für Linux. Du musst es "nur" selber in dern Kernel einkompilieren. Und das würde ich mir überlegen, ob ich mir die Arbeit machen würde. Du musst daran denken, dass du ja auch bei jedem Kernel-Update wieder an jenen ran musst und dafür sorgen musst, dass ZFS an board ist. Ext4 ist wohl schon eine gute Wahl. Ich nutzte XFS und bin etwas unzufrieden, was die Rate beim Erstellen von kleinen Dateien anbelangt. Ist recht langsam. Und ja, auch ich warte sehnlichst auf btrfs.

Zum Thema "Pornösigkeit von ZFS": Definitiv vorhanden! Das ist der Hauptgrund (neben Jails), warum ich von einem befreundeten BSDler immer wieder als niederer Linux-User gemobbt werde ^^ ZFS hat schon coole Features. Checksummen; von-Haus-aus RAID6 (sie nennen es Raid-Z2), entsprechenden Geschwindigkeitsoptimierung, da das Dateisystem den JBOD selbst verwaltet.

Zu den WD-Platten: Die versuchen Strom zu sparen, indem der Schreib-/Lesekopf nach 7 Sekunden Inaktivität von den Platten herunter fährt, um Luftwiderstände zu verringern und dadurch Strom zu sparen. Wir von IronEagle schon angemerkt, kann man diese Zeit mittels WDIDLE ausreichend hoch stellen. Ich habe das auch sehr spät gemerkt, dass die solch einen Quatsch machen. Hier mal ein S.M.A.R.T Protkoll einer solchen Platte:
root@newton:~# smartctl -a /dev/disk/by-id/ata-WDC_WD15EADS-00P8B0_WD-WMAVU0120056
=== START OF INFORMATION SECTION ===
Model Family: Western Digital Caviar Green family
Device Model: WDC WD15EADS-00P8B0
(...)
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
(...)
9 Power_On_Hours 0x0032 098 098 000 Old_age Always - 1931
(...)
193 Load_Cycle_Count 0x0032 153 153 000 Old_age Always - 141178
(...)
Die Load_Cycle_Count gibt an, wie häufig die Platte schon den Kopf "stromsparen" geschickt hat. Übrigens sagt WD, dass dieses etwa 300.000 Male geschehen kann, bis das Ding "alt" ist. Die Hälfte ist bei dieser Platte schon aufgebraucht und sie ist erst 80 Tage alt gewesen. Heißt: Nach 160 Tagen hätte sie bereits die vom Hersteller angegebene Anzahl erreicht. Tolles Feature. WD sagt auch offen, dass sie Linux nicht unterstützen und das man doch lieber Windows mit ihren Platten nutzen solle. Ich kaufe wohl nicht mehr bei WD ^^ An dieser Stelle muss ich Seagate loben: Die haben mir eine 3 Jahre alte Platte, die den Geist aufgab anstandslos und innerhalb einer Woche umgetauscht. Laut Status-Mails war die alte Platte an vielen Orten dieser Welt und die neue kam direkt aus dem asiatischem Raum. Laut Lieferschein hat das denen 32€ Proto gekostet. Davon musste ich 0 bezahlen :)
Ich war übrigens noch einer mit den 5 Jahren Garantie. Inzwischen ist das reduziert. Ich weiß nicht mehr genau, worauf.

Grüße Jue
 
Habe nun alles hier, Server läuft... nur das erste RAID resync dauert ewig!

Code:
Every 2,0s: cat /proc/mdstat

Personalities : [raid6] [raid5] [raid4]
md0 : active raid6 sdg1[5] sdf1[4] sde1[3] sdd1[2] sdc1[1] sdb1[0]
      7814047744 blocks super 1.2 level 6, 512k chunk, algorithm 2 [6/6] [UUUUUU]
      [>....................]  resync =  1.4% (28579336/1953511936) finish=2513.3min speed=12764K/sec

unused devices: <none>

Komme nicht über ~18 mb/s!

Habe proc/sys/dev/raid/speed_limit_min & proc/sys/dev/raid/speed_limit_max schon angepasst :/

Benchmarks (speed_limit_min/max = 0) im durchschnitt aller Festplatten:
Code:
/dev/sdb:
 Timing buffered disk reads: 348 MB in  3.00 seconds = 115.97 MB/sec

Dazu die Kingston 16GB SSD (anderer Controller):
Code:
/dev/sda:
 Timing buffered disk reads: 680 MB in  3.01 seconds = 226.08 MB/sec

Sonst rennt die Kiste wie verrückt, nur das RAID resync ist elendig larm. Achja, wie kann ich nachschauen ob cryptsetup/luks AES-NI nutzt?
 
Moin

Welches System? Bzw. viel wichtiger: Welcher Kernel?
Rasend schnell wird der Resync aber wohl nie. Ich erreiche auch nur so ca. 24MB/s - und verwende ja ebenfalls sehr potente Hardware ;)
 
Sorry, ganz vergessen:

Code:
uname -a
Linux server 3.0.0-16-server #28-Ubuntu SMP Fri Jan 27 18:03:45 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

Alignment sollte eigentlich richtig sein, wenn ich die folgende Ausgabe richtig deute:
Code:
root@server:/etc/dhcp# fdisk -c -u /dev/sdd

The device presents a logical sector size that is smaller than
the physical sector size. Aligning to a physical sector (or optimal
I/O) size boundary is recommended, or performance may be impacted.

Befehl (m für Hilfe): p

Disk /dev/sdd: 2000.4 GB, 2000398934016 bytes
81 Köpfe, 63 Sektoren/Spur, 765633 Zylinder, zusammen 3907029168 Sektoren
Einheiten = Sektoren von 1 Ã 512 = 512 Bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0xf53ba1e8

   Gerät  boot.     Anfang        Ende     Blöcke   Id  System
/dev/sdd1            2048  3907029167  1953513560   fd  Linux raid autodetect
 
Ok, ich hatte die Vermutung, dass du Ubuntu 10.04 oder ein anderes System mit einem Kernel vor 2.6.38 einsetzt - denn dort läuft RAID6 und Cryptsetup/LUKS noch single-threaded ab, nutzt also lediglich einen Kern deiner CPU. Mit den IO-Waits sorgte das insgesamt - auch wenn der Kern nicht voll ausgelastet ist - bei mir immer für eine deutlich schlechtere Performance. Ich hab aus dem Grund (und wegen Treiberproblemen) den Backport-Kernel 2.6.38 in mein Ubuntu 10.04 gepackt, das läuft deutlich besser als mit dem Standard 2.6.32 Kernel. Aber das trifft bei dir ja nicht zu. Daher muss ich dann leider schon passen, ich bin nicht so der Linux-Freak und setze es nur dort ein, wo ich unbedingt muss ;)

Ein Tip habe ich aber noch: Stell bei putty die Zeichencodierung auf UTF-8 - dann werden auch alle Umlaute wieder korrekt dargestellt ;)
 
Okay, ich warte erstmal ab. Bin auch nicht so der Linux-Über-Crack... Danke für die Putty-Info, hatte erst .bashrc oder /etc/profile in Verdacht, bis mir eingefallen ist, dass das Encoding an der Maschine direkt okay ist ;)
 
http://wiki.debianforum.de/BenchmarkFestplattenverschlüsselung

Ich komme nur auf ~138-280 MB/s, sollte aber eigentlich > 900 MB/s (Vergleich Intel Core i5-2500k in der Liste). Wie kann ich prüfen ob AES-NI genutzt wird?

/proc/cpuinfo
Code:
processor       : 7
vendor_id       : GenuineIntel
cpu family      : 6
model           : 42
model name      : Intel(R) Xeon(R) CPU E31240 @ 3.30GHz
stepping        : 7
cpu MHz         : 1600.000
cache size      : 8192 KB
physical id     : 0
siblings        : 8
core id         : 3
cpu cores       : 4
apicid          : 7
initial apicid  : 7
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 x2apic popcnt [B]aes[/B] xsave avx lahf_lm ida arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid
bogomips        : 6585.00
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:
...

EDIT:
nach einem
Code:
modprobe aesni-intel
nun
Code:
535818240 Bytes (536 MB) kopiert, 0,536431 s, 981 MB/s
 
Zuletzt bearbeitet:
Habe ein Skript im Internet gefunden (http://www.cyberciti.biz/tips/linux-raid-increase-resync-rebuild-speed.html -> Comments weiter unten) und ein wenig angepasst.

Code:
#!/bin/bash
# device stuff
blockdev --setra 16384 /dev/sdb
blockdev --setra 16384 /dev/sdc
blockdev --setra 16384 /dev/sdd
blockdev --setra 16384 /dev/sde
blockdev --setra 16384 /dev/sdf
blockdev --setra 16384 /dev/sdg
echo 1024 > /sys/block/sdb/queue/read_ahead_kb
echo 1024 > /sys/block/sdc/queue/read_ahead_kb
echo 1024 > /sys/block/sdd/queue/read_ahead_kb
echo 1024 > /sys/block/sde/queue/read_ahead_kb
echo 1024 > /sys/block/sdf/queue/read_ahead_kb
echo 1024 > /sys/block/sdg/queue/read_ahead_kb
echo 256 > /sys/block/sdb/queue/nr_requests
echo 256 > /sys/block/sdc/queue/nr_requests
echo 256 > /sys/block/sdd/queue/nr_requests
echo 256 > /sys/block/sde/queue/nr_requests
echo 256 > /sys/block/sdf/queue/nr_requests
echo 256 > /sys/block/sdg/queue/nr_requests
# raid stuff
blockdev --setra 65536 /dev/md0
echo 16384 > /sys/block/md0/md/stripe_cache_size
#echo 8192 > /sys/block/md0/md/stripe_cache_active
# disable ncq
echo 1 > /sys/block/sdb/device/queue_depth
echo 1 > /sys/block/sdc/device/queue_depth
echo 1 > /sys/block/sdd/device/queue_depth
echo 1 > /sys/block/sde/device/queue_depth
echo 1 > /sys/block/sdf/device/queue_depth
echo 1 > /sys/block/sdg/device/queue_depth

Eigentlich nur ein paar Tweaks... aber nun:
Code:
Personalities : [raid6] [raid5] [raid4]
md0 : active raid6 sdg1[5] sdf1[4] sde1[3] sdd1[2] sdc1[1] sdb1[0]
      7814047744 blocks super 1.2 level 6, 512k chunk, algorithm 2 [6/6] [UUUUUU]
      [==>..................]  resync = 10.2% (199899648/1953511936) finish=460.2min speed=63504K/sec
 
@cuco...
Sicher das dmcrypt multithreading ist? Wie kann ich das überprüfen? hdparm -t /dev/md0 direkt auf dem Raid gibt mir ~480MB/s aus, bei ~20% Auslastung auf einem der "8" Cores. hdparm -t /dev/mapper/data gibt mir ~140MB/s aus, allerdings 100% Auslastung auf einem Core... Weiß gerade nicht weiter :/
 
Laut diesem Thread ist dm-crypt schon immer multithreading-fähig gewesen:
http://forum.ubuntuusers.de/topic/multi-core-unterstuetzung-fuer-luks-dm-crypt/#post-2377220
Allerdings kann es das nur nutzen, wenn das verwendete Verschlüsselungsmodul das auch kann. Das AES-Modul ist das wie gesagt seit 2.6.38
Siehe dazu z.B. hier: http://www.heise.de/open/artikel/Die-Neuerungen-von-Linux-2-6-38-1203073.html?artikelseite=8
reichen dir 140MB/s nicht? ;) Gigabit-LAN macht ja nur 100-110MB/s (theoretissch 125MB/s)
 
Ansich reichen die 140MB/s natürlich, nur wäre deutlich mehr Leistung förderlich für den Stromverbrauch, wenn durch das limitierende Netzwerk ich mit 10% CPU Auslastung auskommen würde...

Aber sonst bin ich sehr zufrieden mit der Kiste. Werde heute Abend dann die Daten migrieren, schauen wie lange das dauert und anschließend die bis jetzt noch vollen 2x 2TB Platten dazu "raiden" :)
 
Hmm und bei mir siehts so aus:
Code:
/dev/md2:
 Timing buffered disk reads:  942 MB in  3.00 seconds = 313.67 MB/sec
Code:
/dev/mapper/raid:
 Timing buffered disk reads:  884 MB in  3.01 seconds = 293.94 MB/sec

Bei mir kostet die Verschlüsselung also weniger/nichts. Nebenbei laufen dauerhaft einige Zugriffe aufs RAID, ohne wäre es vermutlich nochmal etwas schneller und daher schwanken die Werte von hdparm bei mir auch stark. So viel mehr als bei dir dürfte es eigentlich ja nicht sein, die Prozessoren sind ja doch ähnlich, die wir einsetzen (i7-2600 bei mir).

Und soo viel schneller wird es bei mir vermutlich nicht, weil 4 der 8 HDDs an einem Controller mit PCIe x1 Anbindung hängen, das limitiert ja schon auf theoretische 250MB/s, was dann ingesamt die Datenrate auf einen theoretischen Maximalwert von ca. 375MB/s bei mir drosselt. Wenn ich in der Praxis also gut 300MB/s erreiche, ist bei mir nicht die CPU sondern die Lane der Flaschenhals.
 
Ich habe das Gefühl dass der Cipher langsamer ist...

Code:
cryptsetup -c aes-xts-plain -s 512 luksFormat /dev/md0
~ 450MB/s
Code:
cryptsetup luksFormat --cipher aes-cbc-essiv:sha256 --key-size 256 /dev/md0
wie beim Benchmark ~ 980MB/s

Welchen verwendest du?
 
Zuletzt bearbeitet:
aes-xts-plain

Aber mit dem Test vom loop-device auf dev/null zu schreiben (genau nach Anleitung, also mit cbc-essiv) komme ich auf Werte zwischen 450 und 600MB/s. Ausbrüche zwischen 360 und 810MB/s kamen auch vor.

Allerdings ist mein Server wie gesagt dauerhaft unter einer "leichten Grundlast", also ca. 10-20% CPU-Auslastung aller Kerne, HDD-Zugriffe auf alle HDDs und ne Load von ca. 0.20-0.30.
 
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben