ZFS Neuling
Hallo,
ich bin Frank und neu hier im Forum.
Ich möchte einen Storage-server(4 TByte netto Daten - mehr kann ich nicht sichern) bauen.
Einziger Dienst - für die Klientrechner - iscsi.
Für das OS dachte ich an "OpenIndiana Development oi_151.1.5 X86 (powered by illumos)" und für die Administration an "napp.it".
Ich habe das erstmal auf einem Rechner installiert - fühlt sich gut an.
Einen zweiten Rechner habe ich als Klient(Ubuntu 12.04 LTS) eingerichtet und konnte auch den Dienst problemlos nutzen.
Der Vollständigkeit halber hier die Testinstallation:
1 X OpenIndiana HP DL360G7 Ram: 96Gbyte, Platten: 2xSAS 300GByte, 2xSAS 146GByte(alle einzeln, jeweils als Raid0 Device dem OS zur freien Verfügung).
Das OS selber ist auf einer externen USB Platte installiert.
1 X Ubuntu HP DL360G7 Ram: 96Gbyte, Platten: 1xSAS 300GByte für alles.
Die Rechner verfügen jeweils über eine InfiniBand Karte: Mellanox Technologies MT26428 [ConnectX VPI PCIe 2.0 5GT/s - IB QDR / 10GigE] (rev a0).
Zur Zeit sind die Rechner direkt, mit 1 Kabel, verbunden.
Ausgabe von zpool status storage-pool:
pool: storage-pool
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
storage-pool ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
c3t0d0 ONLINE 0 0 0
c3t1d0 ONLINE 0 0 0
mirror-1 ONLINE 0 0 0
c3t2d0 ONLINE 0 0 0
c3t3d0 ONLINE 0 0 0
Eine vom Klient initierte iscsci Session:
Eine vorhandene 10Gbyte Datei vom Fileserver lesen
############
iscsi Login (Transport ISER)
Logging in to [iface: iser, target: iqn.1986-03.com.sun:t-data, portal: 192.168.1.30,3260]
Login to [iface: iser, target: iqn.1986-03.com.sun:t-data, portal: 192.168.1.30,3260]: successful
sleep 1 && mount /dev/sdb1 /mnt
blockdev --getra /dev/sdb:
256
blockdev --setra 2048 /dev/sdb
blockdev --getra /dev/sdb:
2048
fs sync und cache löschen:
sync && echo 3 > /proc/sys/vm/drop_caches
time dd if=/mnt/10G1 of=/dev/null bs=1M (ohne Klient fs cache)
10000+0 records in
10000+0 records out
10485760000 bytes (10 GB) copied, 4.43836 s, 2.4 GB/s
real 0m4.500s
user 0m0.008s
sys 0m3.880s
time dd if=/mnt/10G1 of=/dev/null bs=1M (mit Klient fs cache)
10000+0 records in
10000+0 records out
10485760000 bytes (10 GB) copied, 2.08897 s, 5.0 GB/s
real 0m2.091s
user 0m0.000s
sys 0m2.084s
umount /mnt && sleep 1
iscsi Logout (Transport ISER)
Logging out of session [sid: 18, target: iqn.1986-03.com.sun:t-data, portal: 192.168.1.30,3260]
Logout of [sid: 18, target: iqn.1986-03.com.sun:t-data, portal: 192.168.1.30,3260]: successful
############
und
6 1Gbyte Dateien löschen > 6 gleichzeitge Prozesse erstellen jeweils eine 1Gbyte Datei >
welche nach sync und Löschen des Klient-Datei-Caches durch 6 gleichzeitge Prozesse gelesen werden.
############
blockdev --getra /dev/sdb:
512
rm /mnt/1g*
sleep 3
dd if=/dev/zero of=/mnt/1g1 bs=1M count=1000 & (6 Prozesse)
sleep 10
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB) copied, 1.33737 s, 784 MB/s
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB) copied, 1.34029 s, 782 MB/s
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB) copied, 1.37541 s, 762 MB/s
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB) copied, 1.38449 s, 757 MB/s
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB) copied, 1.39036 s, 754 MB/s
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB) copied, 1.3974 s, 750 MB/s
sync
real 1m15.002s
user 0m0.000s
sys 0m0.000s
echo 3 > /proc/sys/vm/drop_caches
dd if=/mnt/1g1 of=/dev/null bs=1M & (6 Prozesse)
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB) copied, 3.64288 s, 288 MB/s
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB) copied, 3.81172 s, 275 MB/s
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB) copied, 3.96113 s, 265 MB/s
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB) copied, 4.03046 s, 260 MB/s
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB) copied, 4.05776 s, 258 MB/s
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB) copied, 4.14943 s, 253 MB/s
############
Der erste Test zeigt mir gelesen wird aus RAM, solange die Datei dort ist.
Das zweite Lesen aus dem Klient-Cache geht natürlich noch schneller.
Der zweite Test suggeriert mir ein schnelles Schreiben auf den Fileserver.
Allerdings zeigt mir die Dauer vom sync(1m:15sec) das hier die Daten wohl erstmal in den Ram geschrieben wurden.
Das Lesen nach sync und Löschen des Klient-Datei-Caches scheint hier wieder teilweise von den Platten zu kommen.
Zum ersten Test muss ich noch erwähnen:
Die Werte stammen vom zweiten Durchlauf. Beim ersten Durchlauf waren die Werte weitaus schlechter.
Als Hardware für den Fileserver war ein 2HE Server mit 4 X 3,5"SATA 2TByte Platten für die persistente Speicherung der Daten + 2 kleine Platten für das OS angedacht.
Hier stellen sich jetzt meine Fragen:
* welche und wieviel SSD's sollten für das Log verwendet werden
* welche und wieviel SSD's sollten für das Cache verwendet werden bei 32GByte RAM
Verwendet werden soll das Gerät als Iscsi Target für ein Pool von 6 Xenserver(DL360G7) mit ca. 50 VM's.
Sollte man gleich ein 3HE Server wählen zumal Daten und OS Platten alleine 6 Plattenschächte belegen?
Was haltet Ihr von der OCZ RevoDrive 3 X2 Max IOPS 240GB(
OCZ RevoDrive 3 X2 Max IOPS 240GB, PCIe 2.0 x4 (RVD3MIX2-FHPX4-240G) | Deutschland - Hardwareluxx - Preisvergleich) als cache und log device?