Oracle Database Appliance (ODA): Comment accélérer les accès disques pour les VM ODA? Marco Barroso (CHUV), Lucas Laissue (CHUV), Marco Anzile (Oracle) Résumé Disponible depuis la version 12.1.2.6, une nouvelle fonctionnalité (mais pas encore documentée) permet d accélérer les performances d accès aux disques depuis les machines virtuelles déployées sur l ODA. Cet article décrit les tests de cette fonctionnalité appelée «driverdomain». Au moment des tests, réalisés sur une ODA X5-2, Oracle a étendu son offre ODA avec la sortie de deux modèles : X6-2S et X6-2M. Cet article ne peut pas s adresser à ces modèles car ils ne supportent pas la couche de virtualisation. Bien évidemment, les résultats des tests peuvent légèrement varier d une Appliance à l autre. L idée est de comprendre le fonctionnement et le gain en performance possible de cette fonctionnalité. Introduction Oracle Database Appliance (ODA) est un système totalement intégré et redondant, associant serveurs, stockage, mise en réseau et logiciels, pour des services de base de données haute disponibilité et adaptés à un large éventail d applications transactionnelles (OLTP) et d entreposage de données (DWH). Figure 1: Oracle Database Appliance Oracle Database Appliance permet aux clients et ISVs de déployer rapidement une solution complète, incluant la base de données mais aussi les applications, sur une plateforme virtualisé unique, basée sur Oracle VM. Le support de la virtualisation offre encore plus de flexibilité à cette Appliance complète et intégrée.
Un des nombreux points fort de cet Appliance est la notion de «bundle patch» qui est pré-testé d usine, standard à tous les ODA et permet de mettre à jour l ensemble des couches logicielles (BIOS, drivers, firmware, ILOM, OS, OVM, grid, database) sans ce soucier des tests d interdépendance et de compatibilité. Lors de l écriture de cet article, la version de l ODA est 12.1.2.8. Les serveurs de base de données tournent sur Oracle linux 6.7 et peuvent supporter les bases Oracle 11gR2 et Oracle 12cR1. La couche de virtualisation est assurée par Oracle VM 3.2.10. La baie de stockage intégrée possède 16 disques de 8 TB HDD pour un total de 128 TB brut et 8 disques SSD pour un total de 1.6 TB brut. Les redo logs étant également supportés par des disques SSD dédiés d un total de 800 GB brut. Architecture des accès aux disques des machines virtuelles Aujourd hui (figure 2 à gauche), l accès aux disques physiques pour les machines virtuelles déployées sur l ODA passe par plusieurs étapes : La vm1 accède aux deux disques virtuels (image système et données) de l hyperviseur Dom0 Ces disques sont visibles grâce à un export NFS de l espace disque partagé (shared repository) de la VM ODA_BASE Cet espace disque partagé avec ACFS est placé dans le diskgroup +DATA avec accès direct aux disques. La nouvelle fonctionnalité «driverdomain» permet de supprimer la couche NFS pour l accès au disque virtuel (contenant les données) ce qui permet d accélérer nettement les accès aux disques physiques. Seul l accès au disque image n est pas modifié. Figure 2: Guest VM Disk Access
Test de performance des accès aux disques des machines virtuelles Pour les tests de performance, nous allons comparer les 3 machines virtuelles suivantes: Nom ODA Version VCPU RAM [GB] Disks [GB] VM6 12.1.2.6.0 2 2 10 & 15 VM7 12.1.2.6.0 2 2 10 & 15 VM8 12.1.2.7.0 2 2 10 & 15 Ces tests sont effectués sur un ODA X5-2. Le système de fichier utilisé est Oracle ACFS qui s appuie sur ASM. Plus d information sur : https://docs.oracle.com/cd/e11882_01/server.112/e18951/asmfilesystem.htm#ostmg30000 Les tests de performance se font uniquement au niveau du système de fichier des VM, on ne teste pas les performances d une base de donnée. On fournit également les commandes pour vous permettre de reproduire ces tests sur votre machine. /!\ A noter qu il n est pour l heure pas possible de migrer une VM en «driverdomain». Il est nécessaire d en créer une nouvelle et de migrer les données.
1. Commandes de création des machines virtuelles vm6, vm7 et vm8: Version : 12.1.2.6.0 Version : 12.1.2.7.0 2. Configuration des machines virtuelles vm6, vm7 et vm8
3. Test d accès disques des VM s avec la commande DD Le premier test est effectué simplement avec la commande DD qui nous donnera une idée de l amélioration des performances disques avec l option «driverdomain». Il est important de noter que cette commande utilise un seul thread et donc n est pas très parlante lorsqu il s agit de mesurer des performances de base de données. Pour cela, il est préférable d utiliser DBMS_RESOURCE_MANAGER.CALIBRATE_IO (fourni avec la distribution Oracle). De plus, on fait ce test en passant par le système de fichier (ACFS). On pourrait le faire directement sur le disque virtuel (vdisk). Voici les commandes dd : Voici les résultats: Figure 3: Test avec dd Comme attendu, on constate une nette amélioration des performances sur les disques /u01 et /u02 avec les VM7 et VM8 configurées en «domaindrivers», pour un minimum de 6x. Les différences entre les VM7 et VM8 sont due à la différence de version de l Oracle Appliance Manager qui à été amélioré et au final, on arrive à une performance d accès aux disques améliorée de presque 8x. Nous n avons pas pu tester la dernière version 12.1.2.8.
4. Test d accès disques des VM s avec la commande FIO Le deuxième test effectué avec la commande FIO, elle nous permet d avoir des informations plus détaillées sur les performances en lecture et écriture. Figure 4: Tests avec FIO On observe que les résultats sont en ligne avec les résultats précédents avec la commande dd.
5. ODA Disk Calibration Le dernier test est effectué avec la commande oakcli Disk Calibration (à ne pas lancer après l installation d une base Oracle car cela peut engendrer des problèmes de performances) qui est fournie avec l ODA. https://docs.oracle.com/cd/e22693_01/doc.12/e55580/trouble.htm#babihehj # : oakcli validate -c DiskCalibration (12.1.2.6.0) Test IOPS MBPS Random read throughput of HDD_E0_S04_1413432748 164 145 Random read throughput of SSD_E0_S22_1320011736 6185 623 Random read throughput across all 16 SASDisk 1748 1354 Random read throughput across all 8 SSDDisk 45249 4138 Les deux premiers résultats sont respectivement sur un disque HDD et un disque SSD, sans surprise 164 IOPS pour le disque HDD de 8 TB et 6185 IOPS pour le disque SSD de 600 GB. Ensuite les résultats donnent une moyenne de 1 748 IOPS pour les 16 disques HDD et 45'249 IOPS pour les 8 disques SSD. Au passage, on peut noter deux points : Cela montre qu il est important d envisager de déplacer des tablespaces ou des bases de données consommatrices d IOPS sur les disques SSD. Avec la version Oracle 12c, cela peut se faire en ligne avec une simple commande. On peut également rajouter une deuxième baie de disques qui va simplement doubler les capacités et les performances de l ODA (3'400 IOPS). Cela peut ce faire sans interruption de service. Conclusion En conclusion, l Oracle Database Appliance (ODA) dispose d une nouvelle fonctionnalité qui accélère nettement les accès disques. Il serait dommage de s en priver surtout qu il n y a pas de contraintes particulières. On constate également que cela vaut la peine d installer les mises-à-jours appelées «bundle patch» car en plus de corrections et de nouvelles fonctionnalités, généralement, on observe des améliorations de performances. Aujourd hui la dernière version est la 12.1.2.8. Auteurs Pour plus d informations, n hésitez pas à nous contacter : Marco Barroso Infrastructure Engineer CHUV marco.barroso@chuv.ch Lucas Laissue Database Engineer CHUV lucas.laissue@chuv.ch Marco Anzile Principal Sales Consultant Oracle Suisse +4122/799.51.95 marco.anzile@oracle.com