Nous l’avons vu dans l’article SQL Server en IAAS sur Azure il existe plusieurs moyen afin de stocker nos fichiers de base de données, nous allons nous intéresser ici à un nouveau moyen disponible depuis SQL Server 2014, il s’agit du stockage de nos fichiers directement dans un container Azure en s’affranchissant du système de fichiers de notre machine virtuelle.
Un schéma en disant plus qu’un long discourt :
Je ne parle ici que du scénario machine dans Azure vers Azure Blog Storage, mais il est aussi possible d’appliquer exactement la même méthodologie entre un SQL Server 2014 On Premise et un stockage Azure, toutefois, pour des raisons évidentes de latence, je ne vous le recommande pas.
Nous allons procéder en 4 étapes :
1. Création du Stockage Azure
2. Génération d’une « Shared Access Signature » avec Azure Storage Explorer
3. Création de nos « Informations d’Identifications » (Credentials) dans SQL Server
4. Créer notre base de données
C’est partie !
1. Création du Stockage Azure
Nouveau -> Stockage -> on choisi un nom de stockage « scopitblog » dans notre exemple.
Attention à choisir un emplacement cohérent avec celui de votre future machine azure (et de votre connexion applicative), et attention au niveau de tarification, comme expliqué ici, ce n’est pas encore disponible en mode premium.
Nous allons ensuite créer un container dédié à nos bases que nous allons appeler bdd.
Chez moi le bouton « ok » afin de valider la création d’un container reste grisé sur Firefox, qu’à cela ne tienne, je lance IE 🙂
Une foie notre Storage et notre container créés, il nous pouvons passer à l’étape suivante.
2. Génération d’une « Shared Access Signature » avec Azure Storage Explorer
Il est en effet nécessaire d’obtenir une clé afin que SQL Server puisse s’identifier auprès de notre container, nous allons donc commencer par ajouter notre storage azure dans Azure Data Explorer (Vous pourriez aussi faire la génération de la clé via Powershell).
Nous récupérons la clé depuis notre portail azure.
Puis nous saisissons les informations dans Azure Data Explorer. (On oublie pas le Https)
Une fois connecté nous avons accès à notre container bdd, nous allons pouvoir générer notre shared access signature depuis l’onglet Security.
Notre clé sera donc la suivante :
sv=2014-02-14&sr=c&sig=e1x%2FWkxQFemDGGsPBBDV69zorN2EdtIS2svkUQW3PW8%3D&st=2015-05-08T22%3A00%3A00Z&se=2030-05-31T22%3A00%3A00Z&sp=rwdl
3. Création de nos « Informations d’Identifications » (Credentials) dans SQL Server
Connectons nous maintenant à notre machine virtuelle, afin de créer un credential SQL Server :
Il s’agit là de la partie assez artisanale, on se demande si Microsoft n’a pas du livrer la fonctionnalité alors qu’il pensait ne pas le faire 🙂
Alors ce credential va contenir 3 informations importantes :
- Le nom du credential qui est l’URL de votre container que vous pouvez retrouver dans votre portail Azure
- l’Identity (le point assez marrant) qui est une chaine en dure qui doit contenir « SHARED ACCESS SIGNATURE » … pas autre chose.
- Le password qui est la clé générée au point 2 (sv= …. rwdl)
4. Créer notre base de données
Le moment est venu de tester si nous n’avons rien raté avec la création de notre base de données
CREATE DATABASE scopitBlogTest ON (NAME = scopitBlogTest, FILENAME = 'https://scopitblog.blob.core.windows.net/bdd/scopitBlogTest.mdf') LOG ON (NAME = scopitBlogTest_log, FILENAME = 'https://scopitblog.blob.core.windows.net/bdd/scopitBlogTest.ldf') GO
Manifestement c’est bon, on peut toujours le vérifier en regardant dans notre container Azure soit depuis notre portail soit depuis SQL Server Management Studio
(La clé à utiliser ici est la clé du compte pas notre clé Shared Signature)
Conclusion
Ajouter vos bases directement dans un container Azure c’est laborieux, mais je n’ai aucun doute que les prochaines version de SQL Server contiendrons les interfaces graphiques pour nous simplifier la vie. Les avantages sont nombreux, vous éviter l’utilisation des disques de la machine, ce qui rend chaque fichier autonome (vous partagez pas l’IO d’un seul disque). Et globalement les performances sont meilleures, il ne manque plus que le support de cette fonctionnalité sur les stockages premium et nous serons au top !