Chez Qumulo, notre système de fichiers est indépendant du matériel.

Au cours de notre première année, nous avons interrogé des centaines de clients du stockage de fichiers et l'un des thèmes les plus importants à émerger était le désir de pouvoir exécuter le stockage de fichiers en toute liberté sur le dernier matériel de centre de données, ainsi que dans le cloud public. «Les clients sont notre champ magnétique» est l’un des principes clés de notre entreprise. Grâce à ces entretiens, nos clients nous ont confié une mission claire.

Le système de fichiers à tolérance de panne de niveau entreprise de Qumulo fonctionne sur diverses plates-formes matérielles, notamment: Dell, HPE et notre propre infrastructure (Remarque: cette semaine seulement, nous avons introduit le dernier ajout à nos options de plate-forme matérielle, le C-72T). Mais «agnostique du matériel» ne signifie pas que nous n’avons pas de normes. Nous certifions délibérément et soigneusement des plates-formes spécifiques que les clients peuvent utiliser, car nous souhaitons que leurs clients vivent toujours une expérience formidable. De plus, la facilité avec laquelle nous pouvons créer de nouvelles plateformes certifiées est remarquable. La conception logicielle indépendante du matériel facilite la mise en œuvre des fonctionnalités en créant une couche d'abstraction claire à partir du matériel et en renforçant la confiance dans les tests.

De nombreux SSD modernes ont la capacité d'écrire des blocs 4k de manière atomique. Un disque SSD avec cette propriété répondra à une demande d'écriture si, et seulement si, l'écriture a atterri de manière persistante sur le lecteur, au bon emplacement, dans l'ordre dans lequel l'écriture a été émise, sans erreur de bit ou autre corruption. Le SSD doit le faire même en cas de panne de courant. Nous testons cela de manière approfondie avec nos propres tests d'alimentation et de matériel pour chaque modèle de disque SSD que nous expédions. Cela nous donne la confiance nécessaire pour fournir des garanties d'atomicité matérielle à la pile de logiciels. La méthodologie de test de panne de courant que nous utilisons pour ce processus est fascinante et mérite son propre blog à l'avenir.

Notre architecture de bloc de base repose entièrement sur cette propriété d’écriture atomique 4k. Le résultat est que nous pouvons apporter des modifications atomiques à des structures de données beaucoup plus volumineuses que 4k en écrivant des listes et des arbres construits à partir de blocs 4k et en échangeant atomiquement les racines pour mettre à jour de grandes quantités de données de manière transactionnelle.

Abstraction du matériel

Notre abstraction matérielle est Linux - nous utilisons spécifiquement Ubuntu 16.04 LTS à jour. QFSD (Qumulo File System Daemon), qui est le cœur du système logiciel Qumulo, s'exécute en tant que processus en mode utilisateur unique. QFSD ne nécessite aucune modification du noyau pour s'exécuter. au lieu de cela, cela dépend de paquets open source facilement disponibles qui peuvent être installés via le gestionnaire de paquets Ubuntu apt.

Quand je dis cela aux gens, ils répondent habituellement en disant: «Oh, c'est cool! Vous devez donc installer ZFS et Samba ou quelque chose d’autre et le packer avec une belle interface utilisateur ». Ce n'est pas le cas. QFSD est comme un système d'exploitation autonome à part entière. Il possède sa propre couche de périphériques en mode bloc, avec un ascenseur et un cache, qui se connecte au noyau Linux via libaio. Il dispose de son propre programmateur multitâche coopératif, car les pthreads étaient trop lents pour nos besoins en performances. En conséquence, les dépendances que nous avons sur Linux sont principalement des appels système à l’interface avec le noyau. Le noyau fournit une multitude de pilotes et d'outils bien pris en charge qui nous permettent d'interagir avec la plupart des matériels. Nous avons également parfois besoin d'installer et d'interfacer avec des outils d'intégration propriétaires.

Qumulo maintient une couche d'abstraction matérielle (HAL) qui consolide les informations sur le matériel de Linux dans un emplacement central pour une utilisation par QFSD. Les sources de données agrégées par HAL incluent le noyau Linux, des modules de noyau pour des matériels et des fournisseurs spécifiques, des applications en ligne de commande pour des matériels et des fournisseurs spécifiques, la configuration et l'état du BIOS, la configuration et l'état IPMI, etc. Sur la base de cette agrégation, la couche HAL prend des décisions relatives au matériel et transmet ces informations à QFSD.

La HAL utilise le numéro de série d'un noeud pour déterminer son SKU. À partir de là, il produit une définition matérielle pour cette SKU. Il affirme que les composants matériels actuels (processeurs, cartes réseau, lecteurs, etc.) sont inscrits sur la liste blanche par Qumulo pour une utilisation dans un nœud de cette SKU. Il détermine quelles cartes réseau doivent être utilisées pour le trafic frontal et le trafic principal. Il mappe les informations SSD et HDD de bas niveau sur les abstractions de disque de travail et de sauvegarde de QFSD. Il mappe également les lecteurs vers les baies à utiliser dans l'interface utilisateur. Il peut interroger les températures du processeur, détecter les événements de branchement à chaud de périphériques, configurer le cryptage matériel, contrôler les voyants du châssis et des lecteurs, et bien plus encore.

Nous expédions une grande variété de SKU fabriqués par Qumulo. Le logiciel de stockage de fichiers Qumulo fonctionne sur les plates-formes de serveur populaires HPE et Dell. Nous fonctionnons sur AWS et GCP. En interne, nous augmentons notre couverture de tests en hébergeant des VM Qumulo sur VMWare. Nous effectuons également des tests en exécutant des «simnodes» en mode bac à sable en tant que processus QFSD multiples sur le même hôte, en utilisant des fichiers plats sur l'hôte en tant que périphériques bloqués et en boucle pour la mise en réseau. Dans le cadre d’un hackathon Qumulo, l’un de nos développeurs internes a lancé le produit sur sa tour de jeu à la maison avec un tas de disques SSD mis au rebut de notre laboratoire, câblés au hasard sur divers ports SATA de sa carte mère (nous ne recommandons pas cette configuration). ).

Qumulo est un magasin de logiciels, mais nous avons une équipe de matériel interne. Dans la prochaine entrée, je décrirai le rôle de cette équipe et sa place dans la mission plus large de l'indépendance du matériel de Qumulo.

Partager avec votre réseau