Monday, August 13. 2007
Gigabyte GC-Ramdisk
So, nun ist auch endlich meine Ramdisk eingetroffen. Und sie ist schnell. Richtig schnell. Keine Mechanik, also keine Latenz mehr.
Ich habe 2 1GByte-RAM-Riegel eingebaut, die Batterie eingesetzt, alles zusammengeschraubt und in meinen Rechner gebaut. Keine grosse Magie, hat funktioniert. Dann noch ein Strom- und ein SATA-Kabel dran. Und zu guter Letzt gibts noch einen Adapter fuern ATX-Stecker, um +5V Standby vom ATX-Stecker zum iRAM zu fuehren.
Derzeit benutze ich Nevada70 und im format sieht das dann so aus:
AVAILABLE DISK SELECTIONS:
0. c0d0 <DEFAULT cyl 19454 alt 2 hd 255 sec 63>
/pci@0,0/pci-ide@1f,2/ide@0/cmdk@0,0
1. c1d0 <SAMSUNG-S0MUJDPP50226-0001-465.76GB>
/pci@0,0/pci-ide@1f,2/ide@1/cmdk@0,0
2. c3d0 <GIGABYTE-2C3BB6329781C921-0001-2.00GB>
/pci@0,0/pci-ide@1f,5/ide@0/cmdk@0,0
Eine Bootdisk, eine Datenplatte und die Gigabyte-Ramdisk.
Und schon ist sie benutzbar: zpool create ramdisk c3d0
bash-3.00# zpool status ramdisk
pool: ramdisk
state: ONLINE
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
ramdisk ONLINE 0 0 0
c3d0 ONLINE 0 0 0
errors: No known data errors
bash-3.00#
Lineares Lesen und Schreiben erfolgt mit etwa 115MByte/sec, egal, wie gross die Bloecke sind (8K und 1M getestet).
Das Anlegen von Dateien oder Verzeichnissen war relativ langsam:
time for ((i=0;i<100000;i++)); do touch bzw. mkdir $i; done
das mkdir dauerte 2Min40Sek, touch war ca. 10 Sek schneller.
real 2m39.548s
user 0m37.085s
sys 2m1.175s
Aber viel interessanter ist die Anwendung als slog device. Um wenigstens ein bisschen Geschwindigkeit zu erreichen, habe ich einen NFS-Mount via localhost gemountet, benutzt habe ich NFSv4/TCP ohne rsize/wsize-Tuning.
Dafuer benoetigt man Nevada68 oder neuer, weil man ZFS-Version 7 braucht. Die Inbetriebnahme ist denkbar simpel:
zpool destroy ramdisk
zpool add data2 log c3d0
Schockierend finde ich, dass das zil sogar einmal fast halb-voll war (817M belegt), wenn man also mehrere Dutzend Spindeln mit NFS/ZFS shared, koennte das fast zu wenig sein... Also doch mal wieder Preise bei CurtisSSD einholen.
Das Logfile vom NFS/ZFS-mit-slog-auf-Ramdisk gibts hier. Sehr deutlich sind die hohen Datenuebertragungsraten zu erkennen. Die Mechanik schafft fast 80MByte/sec, die Ramdisk 120MByte/sec. Man beachte auch die Anzahl der Writes/sec, die bei der mechanischen Spindel schon sehr am Limit ist. Die Ramdisk hat da noch einiges an Luft...
Insgesamt ein sehr schickes Spielzeug. Und wenn man sich ueberlegt, dass slog-Devices auch gespiegelt sein koennen (zpool add data2 log mirror c3d0 c4d0), dann kann man daraus schon sehr schicke Dinge bauen. Zu schade, dass jedenfalls in SUNs aktueller Serverlinie weder Platz fuer ein HighProfile-PCI-Device noch fuer ein grosses CDROM vorgesehen ist.
Update: das zfs intent log geht nur als Spiegel, raidz bzw. raidz2 ist leider nicht vorgesehen. Testweise habe ich mal ramdiskadm -a ram[1-4] 128m gemacht.
zpool create data c1d0 log raidz /dev/ramdisk/ram1 /dev/ramdisk/ram2 /dev/ramdisk/ram3 /dev/ramdisk/ram4
geht nicht, dafuer aber
zpool create data c1d0 log mirror /dev/ramdisk/ram1 /dev/ramdisk/ram2 mirror /dev/ramdisk/ram3 /dev/ramdisk/ram4
Funktioniert auch, aber raidz ueber RAM-Devices hielt ich fuer cooler...
Bilder gibts hier:



Gestern habe ich mein Gigabyte iRAM mal unter Windows Vista ausprobiert. Die Geschwindigkeit lag bei etwa 10-15 MByte/sec, also einem Bruchteil der zu erwartenden Geschwindigkeit. Normalerweise schafft das Ding 120-130MByte/sec, random.Und warum arbeitet
Tracked: Oct 04, 07:43