NetApp Tech OnTap
     

Donner vie à Avatar

Avatar a pulvérisé tous les records du box office avec des bénéfices dépassant 2,7 milliards de dollars dans le monde entier et ce n'est pas terminé. Weta Digital, la société chargée des effets visuels du film, a dû elle-même pulvériser quelques records pour créer les incroyables effets 3D d'Avatar. La société Weta Digital était déjà spécialisée dans les rendus graphiques intensifs grâce à son travail sur la trilogie du Seigneur des anneaux et d'autres films récents, mais la création d'Avatar reste un incroyable accomplissement technique.

Weta Digital a repoussé les limites de son infrastructure de calcul et de stockage bien au-delà de ce qu'elle avait pu faire auparavant. Lorsqu'elle a commencé à travailler sur Avatar en 2006, la société Weta Digital venait de finir la production de King Kong. À cette époque, elle disposait de près de 4 400 cœurs de processeur dans son « mur de rendus » et d'environ 100 To de stockage. À la fin de la réalisation d'Avatar, ces chiffres étaient passés à près de 35 000 cœurs de processeur et 3 000 To de stockage. La capacité en RAM du seul « mur de rendus » dépasse à présent la capacité totale du stockage sur disque de Weta Digital à la fin de la réalisation de King Kong.

J'ai commencé à travailler comme administrateur système chez Weta Digital en 2003, à la fin de la réalisation du dernier volet du Seigneur des anneaux. Depuis lors, mon rôle a principalement consisté à diriger l'équipe de l'infrastructure chez Weta Digital™. Cette équipe est responsable de l'ensemble des serveurs, des réseaux et du stockage. Notre travail consistait à créer l'infrastructure rendant Avatar possible et à résoudre tous les problèmes techniques qui se sont produits.

Gérer le changement d'échelle

Malgré l'incroyable croissance dont a bénéficié Weta Digital à l'occasion d'Avatar, gérer le changement d'échelle ne s'est pas révélé aussi difficile que ce que nous pouvions craindre. Pour l'essentiel, cela est dû à une équipe très expérimentée qui savait parfaitement coopérer. L'ambiance était excellente et, lorsque quelque chose n'allait pas, nous prenions le problème à bras le corps et nous trouvions une solution. Nous avons travaillé avec acharnement et avons géré la plupart des problèmes de façon proactive plutôt que réactive.

Nous avons rapidement réalisé que deux étapes majeures devraient être franchies pour atteindre le niveau nécessaire à la réalisation d'Avatar.

  • Nouveau data center. Weta Digital utilisait plusieurs petites salles techniques éparpillées dans plusieurs bâtiments. Un nouveau data center nous a permis d'obtenir un emplacement central pour consolider la nouvelle infrastructure que nous devions ajouter dans le cadre du projet Avatar. (Pour les détails du data center, consultez l'encadré.)
  • Réseau haut débit en fibre optique. Weta Digital n'avait pas de campus localisé. Notre campus était au contraire constitué de plusieurs bâtiments indépendants répartis dans la banlieue de Wellington. Nous avons donc implémenté un anneau haut débit en fibre optique qui reliait ces bâtiments au nouveau data center. Chaque bâtiment était relié par des connexions redondantes d'un minimum de 10 Gbits/s avec circuits EtherChannel de 40 Gbits/s pour les échanges entre le stockage et le mur de rendus.

Ces deux éléments nous ont permis de faire évoluer physiquement notre infrastructure, au fur et à mesure de sa croissance, de même que la bande passante pour déplacer librement les données entre les différents sites. La nouvelle infrastructure de serveurs, destinée au mur de rendus mis à jour, a été créée à l'aide de serveurs lames HP. Avec 8 cœurs et 24 Go de RAM par lame, nous pouvions provisionner 1 024 cœurs et 3 To de RAM par rack. Le nouveau data center était organisé en lignes de 10 racks. Nous avons donc construit nos serveurs en unités de 10 racks ou 10 240 cœurs. Nous avons mis en place les premiers 10 000 cœurs, avons patienté un moment avant d'ajouter les 10 000 cœurs suivants, avons de nouveau patienté avant d'ajouter les 10 000 suivants, puis avons finalement mis en place les derniers 5 000 cœurs.

Nous avions une infrastructure de stockage multifournisseur mais le cœur du stockage était composé de systèmes NetApp® garantissant environ 1 000 To. À la fin d'Avatar, nous avions remplacé tous nos anciens systèmes FAS980 et FAS3050 par des clusters FAS6080. Dans les huit derniers mois du projet, nous avons également ajouté quatre dispositifs d'accélération du stockage SA600 pour résoudre un problème de performances particulièrement gênant.

Accélération des temps d'accès aux fichiers de texture grâce à la mise en cache évolutive (Adaptive Caching)

Dans l'industrie des effets visuels, une texture est une image qui est appliquée à un modèle 3D pour le rendre plus réaliste. Les textures sont enveloppées autour du modèle pour lui donner un niveau de détails, de couleurs et d'ombres offrant un meilleur résultat qu'un modèle de gris lisse. Un « jeu de textures » réunit l'ensemble des différentes images devant être appliquées à un modèle particulier pour lui donner l'apparence d'un arbre, d'un personnage ou d'une créature. La plupart des rendus comprenant un objet appliquent également des textures à cet objet. Les textures sollicitent donc fortement le mur de rendus et sont exploitées de manière incessante.

Un groupe donné de jeux de textures peut être sollicité simultanément par plusieurs milliers de cœurs. Un groupe de superposition peut être sollicité à son tour par des milliers d'autres cœurs, etc. Tout ce que nous pouvons faire pour accroître la vitesse de service des textures a un impact considérable sur les performances du mur de rendus dans son ensemble.

Aucun serveur de fichiers ne pouvant à lui seul fournir la bande passante nécessaire pour ces jeux de textures, nous avons développé un processus de publication conçu pour générer des répliques de chaque nouveau jeu de textures après sa création. Ce processus est illustré à la Figure 1.

Ancienne méthode d'augmentation de la bande passante réservée aux jeux de textures

Figure 1) Ancienne méthode d'augmentation de la bande passante réservée aux jeux de textures

Lorsqu'une tâche exécutée sur le mur de rendus devait accéder à un jeu de textures, elle choisissait un serveur de fichiers de manière aléatoire et accédait aux textures à partir de cette réplique. En nous permettant de répartir la charge des textures sur plusieurs serveurs de fichiers, ce processus améliorait considérablement les performances. Si cette solution était préférable à l'exploitation d'un unique serveur de fichiers, les processus de publication et de réplication étaient complexes et les vérifications de cohérence garantissant la similitude des répliques prenaient énormément de temps.

Nous avons alors commencé à envisager FlexCache® et l'accélérateur de stockage SA600 de NetApp comme un moyen simple de résoudre les problèmes de performances liés aux jeux de textures. Le logiciel FlexCache crée une couche de mise en cache dans l'infrastructure de stockage. Cette couche s'adapte automatiquement aux changements des modèles d'utilisation et élimine les goulets d'étranglement à l'origine des baisses de performances. Il réplique et fournit automatiquement les jeux de données fortement sollicités dans l'infrastructure en utilisant des volumes de mise en cache locaux.

Au lieu de copier manuellement nos données de texture dans plusieurs serveurs de fichiers, FlexCache nous a permis de mettre en cache dynamiquement les textures les plus demandées et de les fournir au mur de rendus à partir des systèmes SA600. Nous avons alors testé la solution et constaté qu'elle fonctionnait parfaitement dans notre environnement. Huit mois avant l'échéance d'Avatar, nous avons pris le pari et installé quatre systèmes SA600, équipés chacun de deux modules PAM d'accélération de performance de 16 Go. (Un module PAM sert de mémoire cache et réduit encore davantage les latences.)

Méthode améliorée utilisant NetApp FlexCache, SA600 et PAM pour augmenter la bande passante réservée aux jeux de textures

Figure 2) Méthode améliorée utilisant NetApp FlexCache, SA600 et PAM pour augmenter la bande passante réservée aux jeux de textures

Le jeu de textures total faisait près de 5 To, mais après la mise en place de FlexCache, nous avons découvert que 500 Go seulement étaient fortement sollicités à tout moment. Chaque système SA600 disposait de suffisamment d'espace local pour convenir au jeu de données fortement sollicité et, au fur et à mesure que celui-ci changeait, les caches s'adaptaient sans aucune intervention de notre part. Le débit global excédait 4 Go/sec, ce qui est bien supérieur à ce que nous avions atteint auparavant.

La mise en cache des textures via FlexCache était une solution géniale. Elle accélérait les opérations et simplifiait la gestion des jeux de texture. Nous en étions à la dernière année d'un projet de film qui devait durer quatre ans. Si la mise en place des systèmes SA600 avait entraîné des problèmes impossibles à résoudre rapidement, il nous aurait probablement fallu nous en débarrasser. Mais, dès la fin de la première semaine, nous les avons quasiment oubliés et ce, jusqu'à la fin du projet. C'est ce qui peut arriver de mieux à un informaticien.

Les performances du stockage ont un impact très important sur la vitesse du rendu. Les goulets d'étranglement peuvent bloquer le débit de votre batterie de rendus. Dans les dernières années d'Avatar, nous nous sommes véritablement attaqués au problème et avons ajouté une multitude de capacités de surveillance et de statistiques à chaque tâche.

Nous avions une file constante de tâches en attente qui s'allongeait jour après jour, et le temps nécessaire à leur exécution dépassait les capacités du mur. L'équipe des « wranglers » de Weta Digital surveillait les tâches pour vérifier que tout se passait comme prévu. Le matin suivant la mise en place de FlexCache, le « chef wrangler » est venu dans mon bureau pour me signaler que toutes les tâches étaient terminées. Le logiciel avait fonctionné si vite que nous pensions avoir raté quelque chose.

Pourquoi choisir NetApp ?

Je suis fan de NetApp depuis longtemps. La première fois que j'ai utilisé NetApp, je travaillais pour un fournisseur d'accès Internet en Alaska en pleine période d'euphorie de la bulle Internet à la fin des années 90. J'ai été suffisamment impressionné à l'époque pour introduire par la suite du stockage NetApp dans plusieurs autres sociétés. J'étais content de découvrir qu'un stockage NetApp était déjà en place lorsque je suis arrivé chez Weta Digital.

Pour une société de ce type, repousser les limites au maximum est un travail quotidien, et personne ne favorise plus l'infrastructure que Weta Digital. Lorsque quelque chose casse, l'important est de faire appel à des fournisseurs capables de vous aider à le réparer. Même lorsque je travaillais pour des entreprises moins importantes, il y avait toujours quelqu'un chez NetApp pour prendre le temps d'étudier le problème avec moi jusqu'à ce que nous l'ayons résolu. Vous pourriez penser que ce comportement est normal, mais mon expérience me fait dire que c'est plutôt rare.

Le stockage peut être complexe. La technologie NetApp rend le stockage aussi simple que possible. J'aurais aimé que NetApp apporte certaines améliorations mais, comparé à tout ce que j'ai pu voir, ils ont créé un produit souple et facile à utiliser, et le support technique est toujours disponible. C'est pour cette raison que nous continuons à privilégier NetApp.

Communauté NetApp
 Vous avez des commentaires sur la mise en cache évolutive ?

Posez vos questions, échangez des idées et partagez vos impressions en ligne via les communautés NetApp.


Adam Shand

Adam Shand
Ancien responsable de l'infrastructure
Weta Digital

Adam a débuté sa carrière d'informaticien en Nouvelle-Zélande, où il a fondé l'une des premières sociétés Internet de ce pays avec son père. En 1997, son poste suivant l'a conduit chez Internet Alaska, puis dans l'industrie de l'automatisation de la conception électronique à Portland, en Oregon. Les similitudes entre la CAO électronique et les effets visuels, alliées à la possibilité de se rapprocher de chez lui, ont conduit Adam chez Weta Digital en 2003. Après sept années de bons et loyaux services, Adam a décidé de quitter Weta Digital et de prendre une année sabbatique sans solde en Asie du Sud-Est.

 
Découvrir