sizzuu
Goto Top

File Server - Hardware Raid Controller - Ubuntu 12.04 x64

Guten Abend erstmal,

Ich manage momentan einige File-Server, welche ich neu mit Ubuntu 12.04 x64 aufgesetzt habe.
Bei jedem der Server handelt es sich um das HP ProLiant DL120 G7 Model mit 8GB DDR3 RAM.
Eingebaut als Speicher sind jeweils 4x 2 TB Western Digital SATA3 HDD (7200rpm, 6Gb/s, 64MB cache).
Als FileSystem wird Ext4 verwendet.

Es werden massigweise Files auf die Server hochgeladen und gleichzeitig gestreamt (es handelt sich um Music / Video Streaming inkl. normalem File Download).

Zwei meiner File-Server habe ich mit einem Software Raid (raid0), welches vom Ubuntu System gemanaged wird, eingerichtet und soweit es mir möglich war auch optimiert und habe laut "iotop" bei einer random read speed von ca. 100mb/s kaum eine höhere System Auslastung (peak) als 0.5.

Beim dritten File-Server habe ich nun interessehalber einen Hardware Raid Controller einbauen lassen beim Einrichten, nämlich den HP P212 Smart Array SAS/SATA (256MB, Battery, RAID 0,10,50) und habe die kompletten 8TB Speicher auch mit einer Raid0 Konfiguration versehen.

Auf allen Servern läuft als WebServer "nginx 1.2.5", welcher mir aber keine Probleme bereitet.
Mein eigentliches und zugleich auch merkwürdiges Problem ist, dass der Server mit der Hardware Raid eine viel größere System Auslastung erfährt, als die zwei anderen Servern, welche eine Software Raid Lösung besitzen.

Folgende Modifikationen am System hab ich gemacht:

/etc/fstab (jeder Server):
"discard,noatime,nodiratime" zu jeder HDD hinzugefügt

/etc/rc.local (für die Software Raid FileServer):
for f in /sys/block/sd*/queue/nr_requests; do echo 8192 > $f; done
for f in /sys/block/sd*/queue/read_ahead_kb; do echo 4096 > $f; done
for f in /sys/block/sd*/queue/scheduler; do echo "deadline" > $f; done


/etc/rc.local (für den Hardware Raid FileServer):
echo 256 > /sys/block/sda/device/queue_depth
echo 512 > /sys/block/sda/queue/nr_requests
echo 4096 > /sys/block/sda/queue/read_ahead_kb
echo "deadline" > /sys/block/sda/queue/scheduler

/etc/sysctl.conf (auf jedem Server):

kernel.sysrq = 0
vm.drop_caches = 3
vm.dirty_ratio = 60
vm.dirty_background_ratio = 5
vm.dirty_expire_centisecs = 1500
vm.swappiness = 0
vm.vfs_cache_pressure = 20
fs.file-max = 102400
kernel.hung_task_timeout_secs = 5

net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_abort_on_overflow = 1
net.ipv4.ip_forward = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_synack_retries = 3
net.ipv4.tcp_syn_retries = 3
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1

net.ipv6.conf.all.forwarding = 0
net.ipv4.conf.all.bootp_relay = 0
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
net.ipv4.conf.all.accept_source_route = 0
net.ipv6.conf.all.accept_source_route = 0

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

net.core.rmem_default = 8388608
net.core.wmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.tcp_mem = 16777216 16777216 16777216
net.ipv4.tcp_no_metrics_save = 1
net.ipv4.tcp_moderate_rcvbuf = 1
net.core.netdev_max_backlog = 3240000
net.ipv4.tcp_max_syn_backlog = 3240000
net.ipv4.tcp_max_tw_buckets = 1440000
net.core.somaxconn = 3240000

net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.netfilter.ip_conntrack_max = 3240000
net.ipv4.neigh.default.gc_thresh1 = 256
net.ipv4.neigh.default.gc_thresh2 = 4096
net.ipv4.neigh.default.gc_thresh3 = 8192

net.ipv4.tcp_rfc1337 = 1
net.ipv4.ip_no_pmtu_disc = 0
net.ipv4.tcp_sack = 1
net.ipv4.tcp_fack = 1
net.ipv4.tcp_dsack = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_ecn = 0
net.ipv4.route.flush = 1

Ich verstehe nicht, warum der Server mit dem Hardware Raid Controller schlechter läuft (Auslastung geht hoch bis auf 5.0 und noch höher), als die Server mit der Software Raid Lösung. Wahrscheinlich hab ich einige Parameter falsch eingestellt. Hoffe jedoch, dass einer von euch den Fehler findet !

Danke im Vorraus.

Content-Key: 195361

Url: https://administrator.de/contentid/195361

Ausgedruckt am: 28.03.2024 um 09:03 Uhr

Mitglied: AndiEoh
AndiEoh 11.12.2012 um 10:22:07 Uhr
Goto Top
Hallo

Hardware RAID Controller schalten oft aus Sicherheitsgründen den Festplatten internen Schreib-Cache ab. Gerade SATA Platten werden damit je nach Zugriffsmuster seeehr langsam und manchmal lässt sich auch nur der Cache komplett abschalten ohne unterschied ob Schreib- oder Lese. Prüf mal nach ob deine Systemlast unter I/O wait geführt wird. Ein weitere Punkt ist die Stripe-Size die zum Zugriffsmuster passen sollte.

Gruß

Andi