Zumindest im Kontext von macOS kann ich diese Aussage nicht nachvollziehen.Insgesamt bevorzuge ich dennoch unter Solarish den in ZFS eingebauten SMB Server.
Zuletzt bearbeitet:
Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: this_feature_currently_requires_accessing_site_using_safari
Zumindest im Kontext von macOS kann ich diese Aussage nicht nachvollziehen.Insgesamt bevorzuge ich dennoch unter Solarish den in ZFS eingebauten SMB Server.
ZFS vCluster
Ich bin gerade dabei meine Z-Raid ZFS Cluster in a Box Lösung fertig zu entwickeln.
Die herkömmliche Lösung ist ein Cluster in a Box bei der sich zwei Server einen gemeinsamen Pool von Multipath SAS Platten teilen. Von SuperMicro gibt es dazu Gehäuse für zwei Mainboards und multipath SAS Platten. Ein Server greift auf die Platten zu und gibt Dienste wie NFS oder SMB frei. Zur Wartung oder im Fehlerfall kann man auf den zweiten Server umschalten der dann die Platten/den Pool übernimmt und die Dienste bereitstellt. Eine gängige Software dazu ist RSF-1 von high-availability.
Diese Lösung ist üblicherweise sehr teuer und sehr kompliziert. Sie erlaubt aber hochverfügbare Speicherlösungen bei bestmöglicher Performance. Meine Lösung basiert auf dem gleichen Konzept, virtualisiert aber den Cluster unter ESXi (Lizenz egal) und nutzt die Möglichkeiten von ESXi RAW Platten zwischen VMs zu sharen. Damit geht diese Lösung auch mit Sata Platten. Auch genügt ein Server statt der vorherigen zwei.
Setup siehe http://www.napp-it.org/doc/downloads/z-raid.pdf
Wer`s testen möchte, es ist als Preview in der 18.02pre free (freier Download)
Anhang anzeigen 449165
use strict; # check for proper code
###############
sub my_action {
############### build actions according to this template
my ($out,$var); # declare all your variables as local or you will get errors
# menue actions
###############
###############################################
# part 1: do function, if question is answered
##############################################
#&print_hash(%in);
# header
print "<script language='javascript'>document.getElementById('hl').innerHTML='FileBench'</script>\n";
##############################
# or create a form to ask user
##############################
my $pools=$zfs{'datapools'};
$pools=~s/\t/,/g;
# last value
my $r=$pools;
my @p=split(/,/,$r);
$r="";
foreach my $p (@p) {
if (-f "/$p/filebench.log") {
$t=`cat /$p/filebench.log`;
if ($t=~/IO Summary/) { $r.="$t\n"; }
}
}
if ($r =~/IO Summary/s) {
$r=~s/,/\t/g; $r=~s/ +/ /g;
print &list2table($r);
print "<br><br>";
}
# sete executable on new setups
&exe("usr/bin/chmod 755 /var/web-gui/data/tools/filebench/filebench");
print <<EoF;
<b>Filebench:</b><hr>
For special longrunning benchmarks run /var/web-gui/data/tools/filebench/filebench manually at console.
You should also disable Monitoring (Top-Menu Mon).<br>If you want to avoid cache effects, set cache to none in menu pools.
<br>
EoF
&ask('begin');
&ask('select_pool','Test Pool',$pools,$in{'select_pool'});
&ask('value_relpath','Relative path',$in{'value_relpath'});
#get workload
my @d=&get_dir("/var/web-gui/data/tools/filebench/workloads/");
$var="";
foreach my $d (@d) {
if ($d=~/\.f$/) { $var.="$d,";}
}
$var=~s/,+$//;
if ($in{'select_load'} eq "") { $in{'select_load'}='fileserver.f'; }
&ask('select_load','Workload',$var,$in{'select_load'});
&ask('select_run','Run in s','30,60,90,120',$in{'select_run'});
&ask('end');
if (($in{'answered'}) && ($in{'submit_ok'} eq "submit")) { # question was answered
&my_function; # do it
}
} #/ my_action
######################
sub my_function {
#######################
#no log
&log_end;
my $r=`ps axw`;
if ($r=~/filebench/) {
print "<br><br>a filebench is running, please wait for results.";
return;
}
# create profile
`cp /var/web-gui/data/tools/filebench/workloads/$in{'select_load'} /tmp/filebench.prof`;
# header
print "<script language='javascript'>document.getElementById('hl').innerHTML='FileBench result $in{'select_pool'}'</script>\n";
# opt delete /pool/filebench.tst
if (-d "/$in{'select_pool'}/filebench.tst") {
`sudo rm -r /$in{'select_pool'}/filebench.tst > /dev/null`;
}
# create testfolder
mkdir ("/$in{'select_pool'}/$in{'value_relpath'}filebench.tst");
# add dir
`echo \'set \$dir=/$in{'select_pool'}/$in{'value_relpath'}filebench.tst\' >> /tmp/filebench.prof`;
# add run
`echo \'run $in{'select_run'}\' >> /tmp/filebench.prof`;
print "<br><br><b>Results for $in{'select_load'}, please wait $in{'select_run'} s until restarting tests..</b><hr><pre>start filebench..\n";
$r= `sudo /var/web-gui/data/tools/filebench/filebench -f /tmp/filebench.prof`;
my $t=$r;
$t=~s/IO Summary: /<br><br>IO Summary: <hr>/s;
print "$t<br>ok.</pre>";
# save last result
$r=~s/.*IO Summary: /Last IO Summary for pool $in{'select_pool'}, $in{'select_load'}, $in{'select_run'} s:/s;
$r=~s/\n.*//s;
$r=~s/\n/ /gs;
$r=~s/:*Shutting.*//s;
`sudo touch /$in{'select_pool'}/filebench.log`; `sudo chmod 666 /$in{'select_pool'}/filebench.log`;
`echo \'$r\' > /$in{'select_pool'}/filebench.log`;
#del testfiles
`sudo rm -r /$in{'select_pool'}/$in{'value_relpath'}filebench.tst 2>&1 > /dev/null`;
return;
}
###############################################
#end of my script, do not delete the line below
1;
Ist denn sync write aktiviert?
Damit bricht die Schreibleistung auch bei SSD stark ein - zumindest bei Desktop SSD.
Dafür gibt es zwei Auswege:
Die erste ist Overprovisioning. Das ist auch eine der Maßnahmen bei Enterprise SSDs. Dabei wird ein Teil der SSD nicht genutzt und steht für das SSD interne Garbage Collection zur Verfügung. Dazu erstellt man z.B. mit hdat2 bei einer neuen oder secure gelöschten SSD eine HPA/Host protected area (10-20% der Kapazität.).
Der zweite Weg ist die kleinen random writes die das Problem sind von der SSD (oder Platten) fernzuhalten. Dazu nutzt man eine Intel Optane (ab 800p) als Slog (ca 20GB) und den Rest optional für VMs, ESXi oder Slog.
vereinfacht gesagt: ja. ZoL und evtl FreeBSD-ZFS haben zwischenzeitlich eine TRIM/unmap Mechanik eingebaut, illumos-ZFS hat das aber noch nichtDa mich das Thema auch interessiert; bedeutet dies, dass ZFS mit TRIM nichts anfangen kann und man nur auf Over Provisioning und die Garbage Collection setzen kann?
Mit 18.02c free geht es wohl noch nicht: napp-it will da immer nur die ESXi hotsnaps löschen, nicht die sonstigen snaps mit used = 0 (zB manuelle oder durch znapzned erstellte).Snap mass delete für size=0
sollte mit neuester 18.02 free und 18.12 dev wieder gehen.
please wait...
would delete vmstore/VMstorage@daily-1542533994_2018.11.24.23.01.36
1 snapshots would be deleted
go back and unselect simulation to delete them
vmstore/VMstorage vmstore/VMstorage@daily-1542533994_2018.11.24.23.01.36 Sat Nov 24 23:02 2018 4.25G - 85.7G off 0 - destroy