ori benchmark, grafting und fazit

TODO 	function ende
	vergleich ende
This commit is contained in:
stoepsel93@higgsboson.tk 2014-03-31 20:24:31 +02:00
parent 6dc44ba590
commit 4f5d94b13f
16 changed files with 702 additions and 6 deletions

View File

@ -0,0 +1,125 @@
64 4 13571
64 8 21769
64 16 14989
128 4 15871
128 8 15976
128 16 25407
128 32 26272
256 4 16440
256 8 16643
256 16 17536
256 32 28622
256 64 50792
256 128 68945
512 4 17861
512 8 29648
512 16 29962
512 32 17616
512 64 23535
512 128 46276
512 256 73562
1024 4 32009
1024 8 30971
1024 16 32941
1024 32 33012
1024 64 21310
1024 128 40450
1024 256 56158
1024 512 87979
2048 4 19006
2048 8 33153
2048 16 32376
2048 32 35423
2048 64 36768
2048 128 45070
2048 256 51441
2048 512 67740
4096 4 45036
4096 8 62023
4096 16 32543
4096 32 19553
4096 64 62008
4096 128 72252
4096 256 69620
4096 512 85416
4096 1024 57280
4096 2048 75986
8192 4 41636
8192 8 46848
8192 16 38633
8192 32 43910
8192 64 70942
8192 128 101190
8192 256 101710
8192 512 77658
8192 1024 89264
16384 4 61010
16384 8 36746
16384 16 48847
16384 32 55100
16384 64 65283
16384 128 54968
16384 256 66944
16384 512 85202
16384 1024 110063
16384 2048 88698
32768 4 63814
32768 8 58221
32768 16 64962
32768 32 54627
32768 64 97868
32768 128 94566
32768 256 101593
32768 512 99178
32768 1024 104212
32768 2048 95782
65536 4 56862
65536 8 63655
65536 16 53651
65536 32 51331
65536 64 86967
65536 128 92640
65536 256 87334
65536 512 87053
65536 1024 90685
65536 2048 106183
65536 4096 98289
65536 8192 104302
131072 4 56418
131072 8 55518
131072 16 55064
131072 32 63083
131072 64 98680
131072 128 97997
131072 256 100236
131072 512 95566
131072 1024 104959
131072 2048 73286
131072 4096 100445
131072 8192 98272
262144 4 58228
262144 8 55747
262144 16 52234
262144 32 53678
262144 64 97700
262144 128 97473
262144 256 96748
262144 512 96864
262144 1024 97347
262144 2048 91465
262144 4096 99712
262144 8192 98159
262144 16384 104791
524288 4 43990
524288 8 55423
524288 16 54319
524288 32 60642
524288 64 98190
524288 128 78317
524288 256 72312
524288 512 92240
524288 1024 94325
524288 2048 80514
524288 4096 100530
524288 8192 100981
524288 16384 89358

View File

@ -0,0 +1,23 @@
\documentclass[german,plainarticle,utf8]{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{dateplot}
\usepackage{tikz}
\usepackage{pgfplotstable}
\pgfplotsset{/pgf/number format/use comma}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
title=GlusterFS Lesen,
width=15cm, height=10cm,
xlabel={Dateigr\"{o}{\ss}e [KiB]},
xmode=log, log basis x=2,
ylabel={Record-Gr\"{o}{\ss}e [KiB]},
ymode=log, log basis y=2,
zlabel={\"{U}bertragungsgeschwindigkeit [KiB/s]},
zmax=120000
]
\addplot3 [patch, patch table={iozone-fastfs-read.out}] table {iozone-fastfs-read};
\end{axis}
\end{tikzpicture}
\end{document}

View File

@ -0,0 +1,4 @@
data=dlmread('iozone-fastfs-read');
tri=delaunay(data(:,1), data(:,2));
dlmwrite('iozone-fastfs-read.out',tri-1,' ');
disp(data)

View File

@ -0,0 +1,146 @@
64 4 2386
64 8 2543
64 16 16023
64 32 19214
64 64 17966
128 4 11210
128 8 15173
128 16 18346
128 32 20847
128 64 23400
128 128 27699
256 4 13120
256 8 19942
256 16 23727
256 32 21949
256 64 20392
256 128 22266
256 256 23509
512 4 13868
512 8 19078
512 16 30940
512 32 19159
512 64 2240
512 128 13190
512 256 20104
512 512 27783
1024 4 15113
1024 8 21833
1024 16 21292
1024 32 29823
1024 64 24700
1024 128 20954
1024 256 26895
1024 512 21918
1024 1024 22442
2048 4 12951
2048 8 18005
2048 16 21932
2048 32 20652
2048 64 19320
2048 128 23422
2048 256 22701
2048 512 22406
2048 1024 20093
2048 2048 18250
4096 4 13138
4096 8 27573
4096 16 6643
4096 32 27765
4096 64 20415
4096 128 22557
4096 256 10601
4096 512 9383
4096 1024 21983
4096 2048 22616
4096 4096 6889
8192 4 15296
8192 8 23751
8192 16 22931
8192 32 20620
8192 64 28304
8192 128 26593
8192 256 12412
8192 512 29353
8192 1024 22022
8192 2048 25970
8192 4096 25854
8192 8192 21332
16384 4 10351
16384 8 20756
16384 16 19661
16384 32 36570
16384 64 29574
16384 128 23195
16384 256 31060
16384 512 24078
16384 1024 28067
16384 2048 20888
16384 4096 29077
16384 8192 32680
16384 16384 41813
32768 4 12329
32768 8 26582
32768 16 24757
32768 32 29864
32768 64 24093
32768 128 29926
32768 256 23750
32768 512 27887
32768 1024 21650
32768 2048 23412
32768 4096 28608
32768 8192 32943
32768 16384 20497
65536 4 15267
65536 8 22637
65536 16 27374
65536 32 28861
65536 64 25379
65536 128 22585
65536 256 27195
65536 512 27853
65536 1024 18803
65536 2048 20436
65536 4096 28426
65536 8192 34651
65536 16384 28362
131072 4 6405
131072 8 23706
131072 16 22599
131072 32 29427
131072 64 26246
131072 128 26356
131072 256 27244
131072 512 24287
131072 1024 24399
131072 2048 23748
131072 4096 21984
131072 8192 23998
131072 16384 29071
262144 4 12527
262144 8 13216
262144 16 24739
262144 32 26357
262144 64 26598
262144 128 25485
262144 256 28434
262144 512 23395
262144 1024 25154
262144 2048 28654
262144 4096 25845
262144 8192 25785
262144 16384 21551
524288 4 5165
524288 8 21305
524288 16 24494
524288 32 24073
524288 64 24191
524288 128 24820
524288 256 24651
524288 512 25715
524288 1024 24165
524288 2048 21985
524288 4096 22754
524288 8192 22127
524288 16384 25345

View File

@ -0,0 +1,23 @@
\documentclass[german,plainarticle,utf8]{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{dateplot}
\usepackage{tikz}
\usepackage{pgfplotstable}
\pgfplotsset{/pgf/number format/use comma}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
title=GlusterFS Schreiben,
width=15cm, height=10cm,
xlabel={Dateigr\"{o}{\ss}e [KiB]},
xmode=log, log basis x=2,
ylabel={Record-Gr\"{o}{\ss}e [KiB]},
ymode=log, log basis y=2,
zlabel={\"{U}bertragungsgeschwindigkeit [KiB/s]},
zmax=120000
]
\addplot3 [patch, patch table={iozone-fastfs-write.out}] table {iozone-fastfs-write};
\end{axis}
\end{tikzpicture}
\end{document}

View File

@ -0,0 +1,4 @@
data=dlmread('iozone-fastfs-write');
tri=delaunay(data(:,1), data(:,2));
dlmwrite('iozone-fastfs-write.out',tri-1,' ');
disp(data)

View File

@ -0,0 +1,146 @@
64 4 60311
64 8 100960
64 16 169273
64 32 219165
64 64 309326
128 4 59953
128 8 105334
128 16 178492
128 32 267258
128 64 341345
128 128 283787
256 4 59812
256 8 104747
256 16 177924
256 32 283473
256 64 361552
256 128 350689
256 256 317224
512 4 60591
512 8 109143
512 16 186854
512 32 294748
512 64 372645
512 128 364672
512 256 322019
512 512 314658
1024 4 60847
1024 8 111303
1024 16 194054
1024 32 295515
1024 64 381917
1024 128 368356
1024 256 336522
1024 512 329272
1024 1024 334973
2048 4 60815
2048 8 111845
2048 16 192371
2048 32 308703
2048 64 390242
2048 128 395433
2048 256 346832
2048 512 341170
2048 1024 340198
2048 2048 347070
4096 4 61252
4096 8 112357
4096 16 195084
4096 32 304786
4096 64 399961
4096 128 388212
4096 256 352647
4096 512 344494
4096 1024 348209
4096 2048 348625
4096 4096 352315
8192 4 61131
8192 8 112136
8192 16 196314
8192 32 310965
8192 64 411741
8192 128 392732
8192 256 357586
8192 512 371132
8192 1024 346442
8192 2048 350460
8192 4096 349785
8192 8192 374473
16384 4 61122
16384 8 109426
16384 16 197795
16384 32 313850
16384 64 407369
16384 128 394423
16384 256 356259
16384 512 347450
16384 1024 352238
16384 2048 352162
16384 4096 352753
16384 8192 356375
16384 16384 359282
32768 4 61041
32768 8 112106
32768 16 197157
32768 32 316901
32768 64 424384
32768 128 400581
32768 256 358692
32768 512 350373
32768 1024 352105
32768 2048 354022
32768 4096 355586
32768 8192 356066
32768 16384 360852
65536 4 60992
65536 8 111475
65536 16 198506
65536 32 317841
65536 64 420282
65536 128 396392
65536 256 333214
65536 512 350004
65536 1024 352533
65536 2048 353829
65536 4096 355644
65536 8192 358155
65536 16384 359244
131072 4 60973
131072 8 111413
131072 16 196512
131072 32 309107
131072 64 422601
131072 128 396156
131072 256 361403
131072 512 350190
131072 1024 353647
131072 2048 354296
131072 4096 355938
131072 8192 316892
131072 16384 362387
262144 4 61077
262144 8 112043
262144 16 198452
262144 32 319961
262144 64 419541
262144 128 399365
262144 256 361019
262144 512 351450
262144 1024 352369
262144 2048 354294
262144 4096 357371
262144 8192 359067
262144 16384 357947
524288 4 60897
524288 8 112421
524288 16 198388
524288 32 317372
524288 64 430188
524288 128 372977
524288 256 325664
524288 512 321544
524288 1024 322231
524288 2048 322974
524288 4096 324627
524288 8192 348180
524288 16384 361609

View File

@ -0,0 +1,23 @@
\documentclass[german,plainarticle,utf8]{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{dateplot}
\usepackage{tikz}
\usepackage{pgfplotstable}
\pgfplotsset{/pgf/number format/use comma}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
title=OriFS Lesen,
width=15cm, height=10cm,
xlabel={Dateigr\"{o}{\ss}e [KiB]},
xmode=log, log basis x=2,
ylabel={Record-Gr\"{o}{\ss}e [KiB]},
ymode=log, log basis y=2,
zlabel={\"{U}bertragungsgeschwindigkeit [KiB/s]},
zmax=700000
]
\addplot3 [patch, patch table={iozone-orifs-read.out}] table {iozone-orifs-read};
\end{axis}
\end{tikzpicture}
\end{document}

View File

@ -0,0 +1,4 @@
data=dlmread('iozone-orifs-read');
tri=delaunay(data(:,1), data(:,2));
dlmwrite('iozone-orifs-read.out',tri-1,' ');
disp(data)

View File

@ -0,0 +1,147 @@
64 4 38458
64 8 57594
64 16 75726
64 32 89633
64 64 100282
128 4 39677
128 8 62500
128 16 85559
128 32 110335
128 64 124281
128 128 128259
256 4 39445
256 8 48844
256 16 89756
256 32 61098
256 64 128256
256 128 142769
256 256 138604
512 4 41860
512 8 65793
512 16 96205
512 32 116921
512 64 132398
512 128 142256
512 256 142615
512 512 136202
1024 4 41704
1024 8 67098
1024 16 96086
1024 32 117906
1024 64 133787
1024 128 142856
1024 256 142124
1024 512 141749
1024 1024 139970
2048 4 41900
2048 8 66708
2048 16 97227
2048 32 119409
2048 64 135988
2048 128 151122
2048 256 143056
2048 512 144226
2048 1024 143338
2048 2048 142380
4096 4 41776
4096 8 67160
4096 16 98301
4096 32 121295
4096 64 136806
4096 128 145604
4096 256 144975
4096 512 145729
4096 1024 144986
4096 2048 144229
4096 4096 145879
8192 4 42375
8192 8 67036
8192 16 98338
8192 32 120882
8192 64 137636
8192 128 145050
8192 256 145148
8192 512 151641
8192 1024 146004
8192 2048 146421
8192 4096 144719
8192 8192 152231
16384 4 42222
16384 8 67034
16384 16 98108
16384 32 121246
16384 64 137015
16384 128 145499
16384 256 145644
16384 512 145854
16384 1024 152339
16384 2048 147032
16384 4096 146915
16384 8192 147138
16384 16384 147139
32768 4 42118
32768 8 67165
32768 16 98898
32768 32 121641
32768 64 143079
32768 128 144932
32768 256 145185
32768 512 146044
32768 1024 146745
32768 2048 146802
32768 4096 146443
32768 8192 146678
32768 16384 147593
65536 4 41635
65536 8 66995
65536 16 98030
65536 32 120944
65536 64 137279
65536 128 153188
65536 256 144896
65536 512 145879
65536 1024 145788
65536 2048 146387
65536 4096 146199
65536 8192 147165
65536 16384 146856
131072 4 41687
131072 8 66119
131072 16 98218
131072 32 120420
131072 64 136603
131072 128 152207
131072 256 151362
131072 512 145300
131072 1024 142441
131072 2048 146210
131072 4096 151969
131072 8192 147278
131072 16384 147893
262144 4 39772
262144 8 62310
262144 16 89913
262144 32 109313
262144 64 122541
262144 128 128280
262144 256 137139
262144 512 143341
262144 1024 144998
262144 2048 144912
262144 4096 144407
262144 8192 144636
262144 16384 148262
524288 4 39232
524288 8 60988
524288 16 87126
524288 32 110303
524288 64 126423
524288 128 129534
524288 256 128063
524288 512 134020
524288 1024 120227
524288 2048 132740
524288 4096 134776
524288 8192 125172
524288 16384 136980

View File

@ -0,0 +1,23 @@
\documentclass[german,plainarticle,utf8]{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{dateplot}
\usepackage{tikz}
\usepackage{pgfplotstable}
\pgfplotsset{/pgf/number format/use comma}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
title=OriFS Schreiben,
width=15cm, height=10cm,
xlabel={Dateigr\"{o}{\ss}e [KiB]},
xmode=log, log basis x=2,
ylabel={Record-Gr\"{o}{\ss}e [KiB]},
ymode=log, log basis y=2,
zlabel={\"{U}bertragungsgeschwindigkeit [KiB/s]},
zmax=240000
]
\addplot3 [patch, patch table={iozone-orifs-write.out}] table {iozone-orifs-write};
\end{axis}
\end{tikzpicture}
\end{document}

View File

@ -0,0 +1,5 @@
data=dlmread('iozone-orifs-write');
tri=delaunay(data(:,1), data(:,2));
dlmwrite('iozone-orifs-write.out',tri-1,' ');
disp(data)

View File

@ -1 +1,5 @@
\subsection{Fazit}
Während meiner Ausarbeitung stieß immer wieder auf Funktionen, die zwar in der Abhandlung oder im Manual aufgeführt sind, aber nur teilweise bzw. überhaupt nicht funktionierten. Es war mir nicht möglich die automatische Synchronisation \emph{orisync} erfolgreich zu starten. Auch Segmentation Faults oder undefinierte Fehler traten immer wieder auf. \\
Abschließend möchte ich noch sagen, dass zwar Ori einen guten Ansatz darin hat, Speicherdienst, Dateisystem und Versionskontrollsystem in sich zu vereinen, aber noch in fast allen Bereichen scheitert. Deshalb ist Ori momentan nicht zu gebrauchen.

View File

@ -2,8 +2,14 @@
\hfill \includegraphics[scale=0.55]{bilder/grafting.png} \hspace*{\fill}
Die aus der Abhandlung \href{http://sigops.org/sosp/sosp13/papers/p151-mashtizadeh.pdf}{>>Replication, History, and Grafting in the Ori File System<<} von Entwicklern der Standford University stammende Grafik >>Figure 1<< zeigt eine bespielhafte Nutzung von Ori. Das Dateisystem eines Nutzers wurde über mehrere Geräte repliziert. Ein Freund des Nutzers hat mit Hilfe des Grafting eines der Verzeichnisse des Nutzers in sein eigenes Dateisystem übertragen. Änderungen an den übertragenen Dateien können später manuell synchronisiert werden. \\
Die aus der Abhandlung \href{http://sigops.org/sosp/sosp13/papers/p151-mashtizadeh.pdf}{>>Replication, History, and Grafting in the Ori File System<<} von Entwicklern der Standford University stammende Grafik >>Figure 1<< zeigt eine bespielhafte Nutzung von Ori. Das Dateisystem eines Nutzers wurde über mehrere Geräte repliziert. Ein Freund des Nutzers hat mit Hilfe des Grafting eines der Verzeichnisse des Nutzers in sein eigenes Dateisystem übertragen. Änderungen an den übertragenen Dateien sollen später manuell synchronisiert werden können. \\
Wenn ein Verzeichnis Q als Verzeichnis Z in das Ziel-Dateisystem übertragen wird, wird dort ein spezieller Commit-Eintrag erstellt. Dieser enthält zusätzlich zu einem normalen Eintrag die UUID des Quell-Dateisystems \emph{graft-fsid}, den Quell-Pfadnamen \emph{graft-path}, einen Hash des Original-Commits aus dem Quell-Dateisystem \emph{graft-commit} und den Ziel-Pfadnamen \emph{graft-target}.
Wenn ein Verzeichnis Q als Verzeichnis Z in das Ziel-Dateisystem übertragen wird, soll dort ein spezieller Commit-Eintrag erstellt werden. Dieser enthält zusätzlich zu einem normalen Eintrag die UUID des Quell-Dateisystems \emph{graft-fsid}, den Quell-Pfadnamen \emph{graft-path}, einen Hash des Original-Commits aus dem Quell-Dateisystem \emph{graft-commit} und den Ziel-Pfadnamen \emph{graft-target}. \\
Das Grafting soll mit Hilfe dieses Befehls ausgeführt werden:
\shellcmd{ori graft q\_repo/q\_path z\_repo/z\_path}
Bei \emph{q\_repo/q\_path} handelt es sich um das Verzeichnis Q im Quell-Repo und bei \emph{z\_repo/z\_path} um das Verzeichnis Z im Ziel-Repo. Mir war es jedoch nicht möglich, diesen Befehl erfolgreich auszuführen. Zwar wurde das Verzeichnis Q nach der Warnung: Quelle oder Ziel ist kein Repository in das Ziel-Repo übertragen, dennoch wurde dort keinerlei Eintrag in der History angelegt.
\pagebreak

View File

@ -2,7 +2,7 @@
\subsubsection{Vorbereitungen}
Da Ori seine Configs und Repositorien unter \emph{.ori} im Home-Verzeichnis des jeweiligen Nutzers ablegt und dieses auf allen Nodes eingebunden wird, würden zwangsweise Fehler auftreten. Deshalb wurde auf allen Computenodes eine neue Partition erstellt und unter \emph{/ori} gemounted. Mit \emph{useradd ori} wurde ein neuer User ori angelegt, dem mit \emph{chown /ori/home ori:ori} und \emph{usermod --home /ori/home ori} das Home-Verzeichnis \emph{/ori/home} zugeteilt wurde. Mit \emph{ssh-keygen} wurden auf Computenode 1 die ssh-Schlüssel erstellt und anschließend auf die anderen Computenodes übertragen. Desweiteren wurde der Public-Key in die \emph{authorized\_keys} eingetragen. Mit diesen Arbeitsschritten war nun ein passwortloser Zugriff für den Nutzer ori auf die einzelnen Coputenodes gewährleistet.
Da Ori seine Configs und Repositorien unter \emph{.ori} im Home-Verzeichnis des jeweiligen Nutzers ablegt und dieses auf allen Nodes eingebunden wird, würden zwangsweise Fehler auftreten. Deshalb wurde auf allen Computenodes eine neue Partition erstellt und unter \emph{/ori} gemounted. Mit \emph{useradd ori} wurde ein neuer User ori angelegt, dem mit \emph{chown /ori/home ori:ori} und \emph{usermod --home /ori/home ori} das Home-Verzeichnis \emph{/ori/home} zugeteilt wurde. Mit \emph{ssh-keygen} wurden auf Computenode 1 die ssh-Schlüssel erstellt und anschließend auf Computenode 2 übertragen. Desweiteren wurde der Public-Key in die \emph{authorized\_keys} eingetragen. Mit diesen Arbeitsschritten war nun ein passwortloser Zugriff für den Nutzer ori auf die beiden Coputenodes gewährleistet.
\subsubsection{Installation}

View File

@ -1,9 +1,22 @@
\subsection{Vergleiche}
\paragraph{Dropbox}
Da Ori Merkmale von Speicherdiensten, verteilten Dateisystemen und Versionskontrollsystemen in sich vereint, wurden aus diesen die Vertreter Dropbox, GlusterFS und Git zu einem Vergleich herangezogen.
\paragraph{GlusterFS}
\subsubsection{Cloud-Speicherdienst Dropbox}
\paragraph{Git}
\subsubsection{Verteiltes Dateisystem GlusterFS}
Um Ori mit mit dem Dateisystem GlusterFS zu vergleichen, wurde auch Ori mit dem IOzone-Benchmark vermessen und die dabei aufgezeichneten Werte mit denen aus der Benchmark-Aufgabe verglichen. \\
\hfill \includegraphics[scale=1]{benchmarks/ori/iozone-fastfs-read-tmpl.pdf} \hspace*{\fill}
\hfill \includegraphics[scale=1]{benchmarks/ori/iozone-orifs-read-tmpl.pdf} \hspace*{\fill}
\hfill \includegraphics[scale=1]{benchmarks/ori/iozone-fastfs-write-tmpl.pdf} \hspace*{\fill}
\hfill \includegraphics[scale=1]{benchmarks/ori/iozone-orifs-write-tmpl.pdf} \hspace*{\fill}
\subsubsection{Versionskontrollsystem Git}
\pagebreak