Auswählen eines Geräts als Server.

-1

Dies ist keine Kodierungsfrage. Dies ist eine Frage, die sich aus Neugier für mein persönliches Projekt ergibt.

Ich habe einen einfachen serverseitigen Web-Server, der über das Netzwerk mit einer begrenzten Anzahl von Clients verbunden werden kann. (Nehmen wir an, dass die maximale Anzahl von 10 zu einem bestimmten Zeitpunkt erreicht ist. Die Last auf der Server-Seite wird niemals zunehmen.) Jetzt soll die Anwendung einige Dateien auf meine Client-Systeme verteilen. Ich kann es entweder auf meinem Desktop oder auf einem XEON-Server hosten. Beide enthalten eine einzige Netzwerkkarte. In beiden Fällen (Desktop / Server) sitzt der Server im selben Netzwerk. Obwohl die Anzahl der Clients begrenzt ist, die Dateien jedoch sehr groß sein können (in GB), können alle Clients gleichzeitig Anforderungen stellen.

Jetzt muss ich eine Entscheidung treffen, welches Gerät als Server verwendet werden soll. Ich frage mich auch, was alles in Betracht gezogen werden sollte, um die Download-Leistung zu verbessern.

Auf dem Desktop läuft Core I7, 4. Generation. 2 TB Festplatte, 128 GB Flash-Laufwerk, 8 GB RAM Xeo-Server. (Ich werde die Spezifikationen setzen)

Die Datenverarbeitung ist möglicherweise nicht der Hauptflaschenhals. Es wird alles Netzwerk-IO sein. Meine Netzwerkbandbreite kann nicht verbessert werden, da ich im selben Netzwerk sitze. Ich kann Server auswählen, da Compute-Threads mehr sein können. Ich werde auch mehr RAM haben, was garantiert, dass sich die Dateien im Hauptspeicher befinden. Datei-E / A ist im Vergleich zum Desktop schneller, ebenso wie der L1 / L2-Cache. Ich bin der Meinung, dass sich die Netzwerkleistung zwischen Desktop / xeon nicht verbessern wird, da die Netzwerkkarte einen Engpass aufweist. Bitte lassen Sie mich wissen, welche anderen Faktoren eine Wahl weitaus besser als die andere machen würden. (Auf beiden wird Ubuntu 14.04 (Desktop mit Client Edition und xeon mit Server Edition) ausgeführt.)

agent.smith
quelle
Welche Art von Daten? Filme, Musik, Andere. Sie haben Recht, die CPU wird nicht der Engpass sein. Was Ihr Engpass sein wird, besteht aus zwei Teilen. Netzwerkgeschwindigkeit und die Geschwindigkeit Ihrer Laufwerke. Wenn Sie ein Gigabit-Netzwerk verwenden (was ich vorschlage), liegt Ihre Obergrenze bei 120 MB / s. Stellen Sie also sicher, dass Ihre Laufwerke mithalten können. Es ist unwahrscheinlich, dass Dateien längere Zeit im RAM verbleiben. RAM wird am besten für Kopien zum Server verwendet, um die Laufwerksgeschwindigkeit zu verbessern, und zwar nur dann, wenn das sendende Gerät schneller als das empfangende Gerät ist. Ich werde eine vollständige Antwort geben, sobald ich weiß, für welche Art von Daten Sie dies verwenden.
Kayot
Meist handelt es sich dabei um Dateien im Format Filme / JPEG / Musik / Benutzerdefinierte Datenformate usw.
agent.smith
Wird es ein Streaming sein oder wird das anfordernde System die Verarbeitung durchführen? Wollen Sie die Videos mit Media Player Classic ansehen (was auch immer Ubuntu verwendet, ich verwende Windows und Mint-Mate, damit ich nicht über die Ubuntu Desktop-Standardeinstellungen Bescheid weiß), oder werden Sie so etwas wie KODI verwenden?
Kayot
Nein, der Inhalt wird zuerst heruntergeladen. Sobald der Inhalt vollständig heruntergeladen ist, können nur wir auf den Inhalt zugreifen.
agent.smith

Antworten:

2

Netzwerkausrüstung - Wenn Sie es noch nicht haben, besorgen Sie sich einen Gigabit-Switch mit genügend Anschlüssen für Ihren Router und alle Systeme, die eine Verbindung herstellen. Ihre Systeme sollten bereits über Gigabit verfügen. Wenn sie nicht die $ 15 Dollar runterwerfen und ein Paar bekommen. Sie sind nicht unangemessen teuer.

Verwenden Sie als Dateiserver das XEON-System, insbesondere wenn es sich bei dem RAM um ECC (Error Correcting Code) handelt. Die i7-Serie kann ECC nicht verwenden, und ECC ist hervorragend geeignet, um Ihre Daten am Leben zu erhalten (d. H. Keine unbeaufsichtigten Beschädigungen im Zusammenhang mit dem RAM). Sie werden immer mit stiller Korruption kämpfen. Warum komplizieren Sie die Angelegenheit?

Da Sie Ubuntu Server 14.04 verwenden, müssen Sie entscheiden, welche Rollen es spielen soll. Ich schlage vor, SSH zu verwenden, um mit dem Server zu kommunizieren. Wenn der Server über IPMI (Intelligent Platform Management Interface) verfügt, schlagen Sie es nach, wenn Sie es nicht wissen. Nehmen Sie den Monitor ab und führen Sie ihn ohne Kopf aus. Ich schlage vor, einen passphrasengeschützten SSH-Schlüssel darauf zu platzieren, damit der Server sicherer ist. Lesen Sie dazu -> https://askubuntu.com/questions/2271/how-to-harden-an-ssh-server

Nachdem Sie den Server gehärtet haben, sollten Sie wahrscheinlich Samba für die Dateikommunikation verwenden. Sie können NFS (Network File System) verwenden, da Sie nur Linux-Computer verwenden. Es ist jedoch besser, sich an Samba zu gewöhnen, wenn Sie ein gemischtes Netzwerk verwenden möchten. Dies ist, was ich am Ende von /etc/samba/smb.conf benutze

[Storage]
   comment = Storage
   path = /media/Storage
   browseable = yes
   read only = no
   guest ok = yes
   create mask = 0755
   writeable = yes

Sie müssen sich nur für ein Partitionsformat entscheiden. Viel kann und wird schief gehen. Aus Ihren Angaben geht hervor, dass Sie ein einzelnes Laufwerk haben, das der normale Startplatz ist. Ich schlage vor, EXT4 zu verwenden, da es ursprünglich für Linux ist. Andere empfehlen EXT3 und ehrlich gesagt, beide funktionieren einwandfrei für Ihre Zwecke. Wenn Sie mehr als ein Laufwerk verwenden und den Speicherplatz in einem einzigen Bereitstellungspunkt zusammenfassen möchten, haben Sie einige Optionen. BTRFS hat Raid-Äquivalent 0,1,5,6, wobei 5 und 6 experimentell sind. Es gibt auch das bewährte mdadm, das einfach einzurichten ist und Ihnen Software-Raid bietet. Sie können auch die pragmatis-Route einschlagen und so etwas wie AUFS (Another Unified File System) oder MHDDFS (Multi-Hard Drive Disk File System) verwenden. Ich bevorzuge MHDDFS, da es einfach und benutzerfreundlich ist und Sie es nicht in den Kernel kompilieren müssen. Es gibt auch Mergerfs, obwohl ich es nicht so oft benutzt habe. Wenn Sie den pragmatischen Weg gehen, empfehle ich, Snapraid zu verwenden, um die Parität für die Laufwerke aufrechtzuerhalten. Sie müssen einmal im Monat 10% der ältesten Daten bereinigen, um eine stille Datenbeschädigung zu vermeiden.

Da Sie nur ein Laufwerk haben, können Sie nichts wirklich gegen die Laufwerksgeschwindigkeit tun, außer schnellere Laufwerke zu kaufen. Ein 4-TB-WD-Green-Laufwerk mit WDIDLE-Einstellung auf unendlich läuft über Gigabit-Geschwindigkeiten in meinem Netzwerk, sodass ich nur die Laufwerke gepoolt und Snapraid verwendet habe, um meine Daten sicher zu halten.

Es kann sich auch lohnen, sich einen DNS zu besorgen und eine eigene Cloud oder einen FTP-Server einzurichten. Sie können Ihre eigene E-Mail hosten, aber die Einrichtung ist mühsam. Sie sollten auch eine rsync-Sicherung zusammenstellen, da RAID keine Sicherung ist. Die Liste geht weiter und weiter.

Ich hoffe, ich habe ein wenig Licht auf das Problem geworfen. Wie immer viel lesen. Linux ist ein nützliches Betriebssystem, aber die Dokumentation ist allgegenwärtig. Überprüfen Sie immer das Datum auf dem Artikel, um zu vermeiden, dass zehn Seiten nicht mehr aktuelles Material gelesen werden.

Kayot
quelle
Danke. Ich habe vergessen zu erwähnen, dass du wahrscheinlich etwas über Verschlüsselung lesen solltest. dm-crypt mit LUKS mit einem anständigen Passwort kann Ihnen die Zukunft ersparen. Ihre Daten sind Ihr Schatz. Stellen Sie sicher, dass ein Dieb nur die Hardware bekommt. Stellen Sie Ihren Server nach Möglichkeit in einem gesicherten Raum auf. Wenn Sie wirklich noch einen Schritt weiter gehen möchten, erstellen Sie ein Zerstörungs-Login. Viel zu oft wird im Nachhinein an Sicherheit gedacht. nach dem Diebstahl. Sei nicht einer dieser Leute. Das gilt auch für Windows. Verwenden Sie den Bitlocker / TrueCrypt-Bootloader auf jedem Laufwerk, das persönliche Daten enthält. In einigen SSDs ist eine AES-Verschlüsselung integriert.
Kayot