Question Exigence de vitesse d'écriture: possibilités de 1,1 Go / s?


Nous aurons une machine au travail, qui sur la performance maximale, devrait être capable de pousser 50 ("têtes d'écriture") x 75 Go de données par heure. Il s’agit d’une performance maximale d’environ 1100 Mo / s en vitesse d’écriture. Pour l'obtenir de la machine, il faut deux lignes de 10 Gbit / s. Ma question est: quel type de serveur + technologie peut gérer / stocker un tel flux de données?

Actuellement, nous travaillons avec ZFS pour le stockage de données, bien que les vitesses d'écriture n'aient jamais été une question. (nous ne sommes même pas près de ces vitesses) ZFS (zfs sur linux) serait-il une option? Nous avons également besoin de stocker beaucoup de données, le "guide informatique" suggère quelque part entre 50 et 75 To au total. Donc, il ne peut probablement pas s'agir de tous les disques SSD, à moins que nous ne voulions offrir notre premier-né.

Quelques ajouts basés sur les excellentes réponses:

  • le maximum est de 50x75 Go / heure en période de pointe, ce qui est inférieur à 24h (la plupart probable <6h)
  • Nous ne prévoyons pas que cela se produira bientôt, nous le ferons probablement courir 5-10x75GB / heure
  • c'est une machine pré-alpha, cependant les exigences doivent être satisfaites (même si beaucoup de points d'interrogation sont en jeu)
  • nous utiliserions NFS comme connexion de la machine au serveur
  • layout: machine génératrice -> stockage (celui-ci) -> (safe RAID 6) -> cluster de calcul
  • alors la vitesse de lecture n'est pas essentielle, mais ce serait bien de l’utiliser à partir du cluster de calcul (mais c’est complètement facultatif)
  • très probablement, il s'agira de gros fichiers de données (pas beaucoup de petits)

28
2018-01-04 14:06


origine


mb comme dans megaBIT ou megaByte? Veuillez utiliser MBi MiBi MByte ou MB pour dénoncer des octets. De plus, 2 lignes de 10 Gbit vous donneront 2400 Mo / s - mzhaase
C'est plus clair maintenant, merci. Quelques questions supplémentaires. La performance maximale est de 1,1 Go / s, mais quelle est la moyenne? Combien de temps durent ces pointes? Et quel est le le minimum Vous êtes prêt à accepter le débit continu? L'écriture est-elle un grand fichier ou plusieurs petits? Quel type de protocole sera utilisé? Quel type de redondance voulez-vous? Cela ressemble à une sorte d’équipement médical ou scientifique, pouvez-vous relier la fiche technique? Comme vous utilisez déjà ZFS, vous pouvez entrer en contact avec une société de stockage spécialisée ZFS, dont il existe plusieurs. Ils pourraient spécifier un système pour vous. - mzhaase
Est-ce que cela doit vraiment être fait avec une seule machine? L'équilibrage de charge sur plusieurs machines pourrait faciliter cela. Vous pouvez utiliser le stockage partagé ou consolider les données ultérieurement. Sur AWS, vous pouvez utiliser une ELB, une mise à l'échelle automatique, un certain nombre d'instances EC2 et EFS, mais cela ressemble à du matériel. Votre question ne décrit pas très bien le cas d'utilisation. - Tim
Juste une note, vous n'avez pas besoin de performances "de pointe" - vous avez besoin de performances "soutenues" de 1.1GBpS - jsbueno
@jsbueno Vous avez raison, cependant, nous pouvons choisir le nombre de têtes d'écriture à activer, donc 1 Go / s est le "pire des cas", mais compte tenu du temps requis, il s'agit d'une performance soutenue. - SvennD


Réponses:


Absolument ... ZFS sur Linux est une possibilité si l’architecture est correcte. Il y a beaucoup de cas de mauvaise conception de ZFS, mais bien fait, vos exigences peuvent être satisfaites.

Le facteur déterminant sera donc la manière dont vous vous connecterez à ce système de stockage de données. Est-ce NFS? CIFS? Comment les clients se connectent-ils au stockage? Ou est le traitement, etc. fait sur le système de stockage?

Remplissez quelques détails supplémentaires et nous pouvons voir si nous pouvons vous aider.

Par exemple, s'il s'agit de NFS et de montages synchrones, il est certainement possible de faire évoluer ZFS sur Linux pour répondre aux besoins de performances en écriture tout en maintenant la capacité de stockage à long terme. Les données sont-elles compressibles? Comment chaque client est-il connecté? Gigabit Ethernet?


Modifier:

D'accord, je vais mordre:

Voici une spécification qui est à peu près 17k $ - 23k $ et s'inscrit dans un espace rack 2U.

HP ProLiant DL380 Gen9 2U Rackmount
2 x Intel E5-2620v3 or v4 CPUs (or better)
128GB RAM
2 x 900GB Enterprise SAS OS drives 
12 x 8TB Nearline SAS drives
1 or 2 x Intel P3608 1.6TB NVMe drives

Cette configuration vous fournirait un espace utilisable de 80 To en utilisant soit le RAID6 matériel, soit le ZFS RAIDZ2.

Étant donné que l’accent est mis sur les performances basées sur NFS (en supposant des écritures synchrones), nous pouvons les absorber facilement avec les disques P3608 NVMe (SLOG à bandes). Ils peuvent prendre en charge des écritures séquentielles de 3 Go / s et ont une endurance suffisante pour supporter en permanence la charge de travail que vous avez décrite. Les lecteurs peuvent facilement être surapprovisionnés pour ajouter des protections dans le cas d'utilisation SLOG.

Avec la charge de travail NFS, les écritures sont fusionnées et transférées sur un disque en rotation. Sous Linux, nous réglons ceci pour qu'il vigne toutes les 15-30 secondes. Les disques en rotation pourraient gérer cela et en tirer un bénéfice encore plus grand si ces données sont compressibles.

Le serveur peut être étendu avec 4 logements PCIe supplémentaires ouverts et un port supplémentaire pour les cartes FLR 10 GbE à double port. Donc, vous avez la flexibilité de la mise en réseau.


18
2018-01-04 14:39



merci ewwwite; nous utiliserions NFS, et il n'y a qu'un seul client (la machine). Nous l'utilisons éventuellement comme périphérique de lecture de notre cluster. (mais quel traitement ou comment est inconnu) Nous avons "l'espace" disponible sur les serveurs de stockage RAID 6. - SvennD
@SvennD S'il s'agit de NFS et de montages synchrones, il est certainement possible de faire évoluer ZFS sur Linux pour répondre aux besoins de performances en écriture tout en maintenant la capacité de stockage à long terme. Les données sont-elles compressibles? C'est un autre facteur. Toutefois, cela dépasse les conseils que je pourrais donner gratuitement sur un forum en ligne. Mes coordonnées sont disponibles dans mon Profil ServerFault. Contactez-moi si vous avez besoin de discuter davantage. - ewwhite
ZFS est plus que capable de ce que vous demandez. Le premier numéro sera de vous assurer que votre réelle Matériel en est capable. Il sera très facile de créer accidentellement un goulet d'étranglement plus serré que 1 Go / s au niveau de l'adaptateur ou du fond de panier, si vous ne faites pas attention. Assurez-vous de bien comprendre CETTE partie, puis demandez-vous comment éviter les pièges du côté de ZFS. - Jim Salter
@SvennD Édité avec une spécification de conception de base et des coûts bruts. - ewwhite
Je pense que je recommanderais un Oracle X6-2L sur un serveur HP. Le serveur Oracle est livré avec quatre ports réseau prêts à l'emploi de 10 Go. Et dans mon expérience, HP vous a tué à mort pour ILOM, les licences de logiciels ILOM, etc., au point qu'un serveur HP coûte plus cher qu'un équivalent Oracle. Mon expérience m'a également appris que la boîte Oracle dépassera la boîte HP - et sera beaucoup moins susceptible que la boîte HP d'avoir l'un de ces goulots d'étranglement matériels mentionnés par @JimSalter. Oui, acheter chez Oracle peut être douloureux. - Andrew Henle


Pour une vitesse d’écriture aussi extrême, je suggère de ne pas utiliser ZFS, BTRFS ou n’importe quel système de fichiers CoW. J'utiliserais XFS, qui est extrêmement efficace pour les transferts volumineux / en continu.

Il manque de nombreuses informations (comment comptez-vous accéder à ces données? La vitesse de lecture est-elle importante? Allez-vous écrire en gros morceaux? Etc.) pour vous donner des conseils spécifiques, mais voici quelques conseils généraux:

  • utilisez XFS sur une partition brute ou un volume LVM gras (n'utilisez pas de volumes minces)
  • Ajustez la taille de ioblock pour gérer efficacement les écritures volumineuses.
  • utilisez une carte RAID matérielle avec un cache en écriture protégé Powerloss; si l'utilisation du RAID matériel est hors de question, utilisez un schéma logiciel RAID10 (évitant tout mode RAID basé sur la parité)
  • utiliser deux interfaces réseau 10 Gb / s avec LACP (agrégation de liens)
  • assurez-vous d'activer les cadres Jumbo
  • comme vous allez utiliser NFS, pensez à utiliser pNFS (v4.1) pour une évolutivité accrue
  • sûrement beaucoup d'autres choses ...

23
2018-01-04 14:52



De même, si vous utilisez XFS, placez le journal sur une paire de disques SSD RAID1. - T. B.
Si vous utilisez une carte RAID avec un cache en écriture protégé contre la perte de puissance, le journal peut être laissé sur la baie principale: le cache en écriture absorbera et fusionnera les écritures du journal. De plus, d'après ce que décrit le PO, la charge de métadonnées devrait être assez faible par rapport à la diffusion en continu de données. - shodanshok
ZFS fonctionnerait parfaitement et peut aller beaucoup plus vite que XFS. Bien sûr, vous devrez le configurer correctement et disposer de la RAM et des SSD pour le ZIL et le SLOG, mais cela n’a probablement pas d’importance avec les vitesses requises. - John Keates
Je considère XFS sur Linux comme une technologie ancienne. L’opérateur pourrait tout aussi bien exécuter ZFS sur un RAID matériel. La raison pour laquelle je recommande ZFS est de permettre au SLOG d'absorber les écritures synchrones NFS entrantes avec une latence faible sans avoir besoin d'un pool entièrement composé de disques SSD. - ewwhite
Un Shelby Cobra est une "vieille technologie", mais il peut encore fumer la plupart des voitures par la porte. ZFS n’a jamais été conçu comme un système de fichiers très performant. Bien qu’il soit possible de l’ajuster de manière à ce qu’il soit extrêmement rapide avec une charge de travail particulière, il n’est pas conçu pour le faire par défaut. Il faudra plus de matériel, beaucoup plus de mémoire et beaucoup d’ajustements pour qu’il soit meilleur que ce que XFS vous offre gratuitement avec quelques options de montage et de formatage de fichiers. - T. B.


L’Ethernet à 25 Gbps est déjà très courant, alors que le NVMe à base PCIe absorbera facilement ce trafic.

Pour référence, j'ai récemment construit une petite solution de «capture de journal» utilisant quatre serveurs Dual-Xeon standard (HPE DL380 Gen9s dans ce cas), chacun avec 6 disques NVMe, j'ai utilisé IP sur Infiniband, mais ces cartes réseau de 25 / 40Gbps sont identiques. et nous capturons jusqu'à 8 Go / s par serveur - fonctionne à merveille.

En gros, ce n’est pas bon marché, mais c’est très faisable de nos jours.


4
2018-01-04 14:58



Oui, mais comment stockez-vous environ 50 To sur NVMe? Les filateurs ne coûtent pas cher, alors comment pouvons-nous fusionner pour maintenir la vitesse à la hauteur ... - SvennD
Bon point, de manière réaliste, vous ne devez obtenir que 4 x 4 To sur un serveur, j'utilise plusieurs serveurs, probablement vous ne le pouvez pas? sinon c'est juste des charges de 2.5 "10krpm en R10 - Chopper3
Ne pas vouloir, c'est plus comme ça, nous n'aurons pas besoin de ces spécifications sauf pour entrer dans la porte, et je ne veux pas le cauchemar des frais généraux de plusieurs serveurs. pour une seule machine. R10 serait-il assez rapide? (raid harware?) - SvennD
Nous avons un boîtier Windows 2012R2 que nous avons construit à partir d'un kit de rechange qui n'était pas utilisé. Nous l'utilisons comme NAS, il possède 6 SSD SAS de 400 Go en interne, 8 étagères D2600 avec chacune 25 disques de 10 000 SAS 10k SAS et un D6000. Tablette avec 70 disques de 4 To et pouvant inonder facilement une carte réseau de 10 Gbit / s - pas encore essayé avec une carte réseau de 25 Go. - Chopper3
@MSalters Il existe un certain nombre de disques PMR de 8/10 To (non-SMR) avec un taux de transfert de 200 Mo / s. Un ensemble de 12 ou 16 disques, à la fois en RAID10 et en RAID6, devrait facilement dépasser la vitesse de transfert requise de 1,1 Go / s. - shodanshok


Les écritures séquentielles à 1100 Mo / s ne sont pas un problème avec le matériel moderne. De manière anecdotique, ma configuration domestique avec des disques pour ordinateurs portables 8x5900 tr / min, des disques 2x15000 tr / min et des disques 2x7200 tr / min supporte 300 Mo / s avec une charge utile ponctuelle de 16 Go.

Le réseau est un réseau 10 GbE avec des câbles à fibres optiques, 9 000 MTU sur Ethernet et la couche d’application est Samba 3.0. Le stockage est configuré dans raid50 avec trois bandes sur trois volumes raid5 à 4 lecteurs. Le contrôleur est LSI MegaRAID SAS 9271-8i avec une vitesse de transfert allant jusqu'à 6 Gb / s par port (j'ai un multiplicateur de port supplémentaire plus lent).

Adressez-vous à n’importe quel administrateur système chevronné et il devrait être en mesure de vous dire exactement quel (s) contrôleur (s) et quel (s) lecteur (s) répondraient à vos exigences.

Je pense que vous pouvez essayer avec n’importe quel contrôleur 12 Gb / s et configurer deux bandes en miroir de huit disques à 7 200 tr / min chacune (presque tous les lecteurs devraient le faire). Démarrez 3-4 connexions TCP pour saturer la liaison. Si une seule paire de cartes 10GbE ne peut pas la gérer, utilisez quatre cartes.


3
2018-01-04 22:52





Cela ne ressemble pas à un gros problème. Notre fournisseur de matériel local a ceci comme une produit standard - Apparemment, il peut pousser jusqu'à 1400 Mo / s en mode d'enregistrement CCTV, ce qui devrait être plus difficile que vos exigences de pointe.

(Link est associé à la configuration par défaut de 12 Go, mais ils notent que 20x4To est également une option. Aucune expérience personnelle avec ce serveur de modèle particulier.)


2
2018-01-04 19:05



Eh bien, par "produit standard", vous faites référence à une "boîte à logiciel noire" avec 20 x 600 Go de sas 15k et 3 x ssd d'entreprise. C'est une offre équitable, nous avons eu un fournisseur similaire de notre fournisseur de matériel, mais le coût des licences pour moi est dingue pour quelque chose qui est fondamentalement gratuit (ZFS) Merci de partager la construction! (bon lien) - SvennD


Quelque chose de tangent, mais envisagez d’utiliser InfiniBand au lieu de deux liens 10GbE. Vous pouvez vous procurer des cartes Infiniband 56 Gbps plutôt bon marché ou 100 Gbps pour un coût sans pareil. Sous Linux, il est facile d’utiliser NFS avec RDMA sur IB, ce qui vous permet d’obtenir une latence extrêmement faible et un débit presque théorique de la vitesse (si votre stockage sous-jacent peut le gérer). Vous n'avez pas besoin d'un commutateur, mais seulement de deux cartes InfiniBand et d'un câble à connexion directe (ou d'un câble à fibre InfiniBand si vous avez besoin de plus longues distances).

Une carte Mellanox 56 Gbps à port unique (8x PCIe 3.0) telle que la MCB191A-FCAT coûte moins de 700 dollars et un câble à connexion directe en cuivre de 2 mètres coûte environ 80 dollars.

Les performances dissiperont généralement 10 GbE de l’eau dans tous les cas d’utilisation. Il n’ya aucun inconvénient, sauf si vous devez accéder au serveur à partir de nombreux clients différents qui ne peuvent pas tous utiliser InfiniBand (et même dans ce cas, les commutateurs Mellanox peuvent relier 10GbE et 40GbE à IB, mais c’est un peu plus d’un investissement, bien sûr).


2
2018-03-17 06:39





Cela est possible avec ZFS, cependant, envisagez d’utiliser FreeBSD car FreeBSD dispose de la pile réseau la plus rapide. Cela permettrait peut-être 100 Go sur une seule machine.

1100 Mbps sonne beaucoup, mais vous pouvez y parvenir de manière réaliste en utilisant uniquement des disques durs classiques. Vous dites que vous avez besoin de 75 To d’espace pour pouvoir utiliser 24 disques durs en miroir. Cela vous donnerait une vitesse d'écriture d'un disque unique de 12x et une vitesse de lecture de 24x. Étant donné que ces lecteurs ont une vitesse d'écriture supérieure à 100 Mbps, vous devriez pouvoir gérer facilement la bande passante. Assurez-vous de ne pas obtenir de disques SMR, car ceux-ci ont une vitesse d'écriture extrêmement lente.

ZFS crée des sommes de contrôle pour chaque bloc. Ceci est mis en œuvre avec un seul thread. En tant que tel, vous devriez avoir un processeur avec une fréquence d'horloge raisonnablement rapide pour ne pas bloquer.

Cependant, les détails de la mise en œuvre dépendent énormément des détails.


1
2018-01-04 15:15



"FreeBSD a une pile de réseau plus rapide" [besoin de citer] - Jim Salter
Exactement. Linux est tout à fait capable. - ewwhite


Nous avons associé les données de dumping d'une carte réseau 10G à une grappe Gluster par-dessus leur client fusible. Cela demande un peu de réglage, vous ne croiriez pas les performances qu'il peut atteindre depuis la version 3.0.


1
2018-01-05 23:31