jeudi 28 mars 2013

MCSE 2012 Server Infrastructure

C'est officiel depuis ce matin 4:46 du matin et l'envoi du mail de confirmation de Microsoft.

Je suis désormais MCSE 2012 Server Infrastructure.

J'avais posté précédemment. la skills development roadmap qui permet de voir le chemin parcouru et les prérequis nécessaire à l'obtention de ce titre.


Je vais certainement revenir sur la dernière certification (Implementing an Advanced Server Infrastructure 70-414) afin d'exposer la manière dont je me suis préparé pour obtenir cette dernière.


lundi 11 mars 2013

Hyper-V 3 - Qu'est-ce que le "Smart Paging" ?

Hyper-V dans sa nouvelle version propose désormais une nouvelle fonctionnalité : Le Smart Paging.

Préambule : comprendre la mémoire dynamique dans Hyper-V

Pour bien comprendre à quoi le Smart Paging peut bien servir, il faut tout d'abord comprendre le fonctionnement de l'allocation de mémoire dans Hyper-V et plus particulièrement de la mémoire dynamique (ajouté par Microsoft depuis le release du SP1 de Windows Server 2008 R2 et Microsoft Hyper-V Server 2008 R2 SP1).

Pour voir tout ceci, direction les "Settings..." d'une machine virtuelle (VM).



Ok, cliquez sur "Memory". Voici donc l'écran en question.


Vous pouvez déjà vous rendre compte que, parmi les options de la mémoire dynamique, apparaît une nouvelle possibilité : Minimum RAM.

Mais rappelons d'abord brièvement l'utilité de chacune des options disponibles pour la mémoire dynamique.

1) Startup RAM : il s'agit de la quantité de mémoire RAM allouée par Hyper-V à la VM au démarrage. Cette quantité de RAM doit correspondre à la quantité de mémoire dont a besoin la VM pour démarrer.

2) Minimum RAM : il s'agit de la quantité minimum de mémoire RAM au-dessous de laquelle plus aucune mémoire ne pourra être libérée par Hyper-V sur la VM  C'est donc la mémoire minimale dont a besoin votre VM pour tourner. La suppression de RAM se fait par la technologie de "Ballooning" présente au sein de chaque VM.

3) Maximum RAM : c'est la mémoire maximale attribuable par Hyper-V à la VM. L'ajout de mémoire se fait par la technologie "HotAdd".

4) Memory Buffer : Il est basé sur le "Current Commit", autrement dit sur la mémoire allouée à l'instant t à la VM par Hyper-V. La valeur par défaut du Memory Buffer est paramétré à 20%.

Le Memory Buffer se calcule comme suit :


Memory Buffer(MB) = (1 / (1 - Memory buffer(%)) - 1) x Current Commit(MB)


L'objectif de ce Buffer est de permettre l'allocation très rapide de mémoire RAM supplémentaire lorsque la charge s’accroît sur la VM.  Le Memory Buffer est donc une zone sur chaque VM où est pré-allouée de la RAM. Lors d'une montée en charge, le Global Memory Object (GMO) tentera donc en premier lieu (dans un processus pouvant aller jusqu'à 4 étapes si nécessaire) de fournir la RAM nécessaire via ce Memory Buffer.

Ce Memory Buffer est borné à droite par la valeur Maximum RAM.

À retenir :
a) Vous définirez une valeur basse à cette zone tampon lorsque le logiciel fonctionnant à l'intérieur de la VM essaie d'utiliser autant de RAM que disponible. C'est typiquement le cas d'un serveur SQL.
b) Une valeur haute sera utilisée dans le cas où vous avez un process qui peut avoir besoin d'un système de cache fichier important ou bien dans le cas où une application demande fréquemment une importante quantité de RAM supplémentaire et ensuite la relâche.
c) La mémoire cible de chaque VM est donc l'addition du Current Commit Charge (borné par les valeurs Minimum RAM et Maximum RAM) et du Memory Buffer.

5) Memory Weight

Lors de la version beta du SP1 de 2008 R2, ce paramètre s'appelait "Memory Priority". Il a pour objectif de déterminer la façon dont les VMs sont impactées lorsqu'il y a lieu de redistribuer la mémoire. Le paramètre ne garantit en rien la disponibilité de la mémoire. C'est une des raisons qui, à l'époque, a poussé Microsoft à modifier le nom de ce paramètre.

À quoi sert le Smart Paging ?

Nous y voilà. Nous avons passé en revue les différentes options que nous confère Hyper-V, et abordé très brièvement le fonctionnement de l'allocation dynamique de RAM par l'hyperviseur Microsoft.

Dans sa précédente version, vous pouviez rencontrer un problème de taille lors du redémarrage d'une VM ou de l'hyperviseur. En effet, la mémoire étant allouée dynamiquement, elle est soit ajoutée, soit supprimée. On peut donc arriver à une situation où une VM (ou plusieurs) se retrouvent à un seuil d'allocation de mémoire inférieure au paramètre "Startup RAM" tout en respectant le paramètre "Minimum RAM". Dans ce cas, la VM ne pouvait pas redémarrer, où seulement certains services. Peu pratique n'est-ce-pas ?

C'est la qu'intervient la nouvelle fonctionnalité délivrée par Microsoft. En effet, désormais si lors du démarrage d'une VM, Hyper-V n'est pas capable d'allouer suffisamment de RAM (correspondant au paramètre Startup RAM) et qu'il n'est pas non plus possible de récupérer la RAM nécessaire depuis les autres VMs, un fichier "Smart Paging" sera créé à l'endroit spécifié (comme ci-dessous) et utilisé par la VM en lieu et place de mémoire RAM.



Le fichier n'est créé que lorsque c'est nécessaire. La mémoire rendue disponible par ce mécanisme est présente jusqu'à la fin du processus de démarrage de la VM. Hyper-V se charge de désallouer cette RAM par la technologie de "Ballooning" et ce jusqu'à ce que la VM arrête d'utiliser le "Smart Paging". C'est donc bien un mécanisme temporaire (ne devant pas durer plus de 10 minutes) utilisé seulement dans le cas du démarrage et dans aucun autre cas. Dès que la VM arrête d'utiliser ce fichier, il est supprimé.

samedi 9 mars 2013

Microsoft met à disposition de multiples labs pour aider aux certifications 70-410 à 70-412 (MCSA 2012)


Vous avez planifié votre parcours vers le titre de MCSA Windows Server 2012?


Microsoft vous vient en aide avec de nombreux Labs destinés à vous aider à appréhender les différents sujets abordés par les 3 certifications 70-410, 70-411 et 70-412.

C'est vraiment un super travail fourni par Microsoft pour ceux qui n'ont pas l'occasion de configurer un environnement de test @home.





Le lien contenant les différents Labs mis à disposition par Microsoft : http://technet.microsoft.com/en-us/windowsserver/hh968267.aspx

Enjoy !

mardi 26 février 2013

Delete Subfolders and Files - Définir des droits précis sur une arborescence grâce à .Net

Afin d'automatiser la création d'une arborescence et de définir précisément les droits pour certains utilisateurs dans un domaine Windows Active Directory, j'ai créé un script en Powershell. Le dossier se trouve sur un serveur de fichiers Windows 2000.

Malheureusement, à l'époque où j'ai créé le script, je n'ai jamais pu trouver comment définir le droit spécifique "Delete Subfolders and Files" tout en supprimant le droit "Delete" et ceci en Powershell v2.


Sous forme graphique, le résultat qu'on aimerait obtenir :


J'ai donc créé un petit second script écrit en .Net et appelé par mon script Powershell afin de réaliser cette opération. Le script écrit en powershell fournit deux arguments au script .net compilé et disponible sous le forme d'un simple exécutable: le username qui doit posséder les droits et le dossier sur lequel définir les permissions.

Voici le code .Net pour réaliser l'opération décrite ci-dessus :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.DirectoryServices;
using System.Security.AccessControl;
using System.IO;


namespace GroupADUploadRights
{
    class Program
    {
        static void Main(string[] args)
        {                 
            try
            {
                String[] Args = Environment.GetCommandLineArgs();
                if (Args.Length != 3)
                {
                    System.Console.WriteLine("Wrong command usage.");
                    System.Console.WriteLine("1 mandatory parameter should be given: ");
                    System.Console.WriteLine("Argument 1 : Username");
                    System.Console.WriteLine("Argument 2 : Directory");

                }
                else
                {                  
                    string userDn = "CN="+Args[1]+",OU=myOU,DC=contoso,DC=com"; string groupDn = "CN=Domain Users,OU=Group,DC=contoso,DC=com";
                    DirectoryEntry dirEntry = new DirectoryEntry("LDAP://" + groupDn);
                    dirEntry.Properties["member"].Remove(userDn);
                    dirEntry.CommitChanges();
                    dirEntry.Close();

                    try
                    {
                        string fileName = "f:\\" + Args[2] + "\\folderToRestrict";
                        // Add the access control entry to the file.
                        AddFileSecurity(fileName, Args[1],
                            FileSystemRights.DeleteSubdirectoriesAndFiles, AccessControlType.Allow);

                        // Remove the access control entry from the file.
                        RemoveFileSecurity(fileName, Args[1],
                            FileSystemRights.Delete, AccessControlType.Allow);                      
                    }
                    catch (Exception e)
                    {
                        //Console.WriteLine(e);
                    }

                }
            }
            catch (System.DirectoryServices.DirectoryServicesCOMException Exc)
            {
                //doSomething with E.Message.ToString();
            }          

        }

        // Adds an ACL entry on the specified file for the specified account.
        public static void AddFileSecurity(string fileName, string account,
            FileSystemRights rights, AccessControlType controlType)
        {

            // Get a FileSecurity object that represents the
            // current security settings.
            FileSecurity fSecurity = File.GetAccessControl(fileName);

            // Add the FileSystemAccessRule to the security settings.
            fSecurity.AddAccessRule(new FileSystemAccessRule(account,
                rights, controlType));

            // Set the new access settings.
            File.SetAccessControl(fileName, fSecurity);

        }

        // Removes an ACL entry on the specified file for the specified account.
        public static void RemoveFileSecurity(string fileName, string account,
            FileSystemRights rights, AccessControlType controlType)
        {

            // Get a FileSecurity object that represents the
            // current security settings.
            FileSecurity fSecurity = File.GetAccessControl(fileName);

            // Remove the FileSystemAccessRule from the security settings.
            fSecurity.RemoveAccessRule(new FileSystemAccessRule(account,
                rights, controlType));

            // Set the new access settings.
            File.SetAccessControl(fileName, fSecurity);

        }
    }
}

samedi 23 février 2013

Larger Cover Exam Ref 70-413: Designing and Implementing a Server Infrastructure

Ça y est !

Je suis officiellement MCSA 2012 :-) J'ai passé la certification 70-417 (J'en avais déjà parlé ici : http://sysadminconcombre.blogspot.be/2013/01/larger-cover-exam-ref-70-417-upgrading.html)


Beaucoup de boulot pour y arriver, mais la certif est dans la poche, on va pouvoir se concentrer sur la suivante : 70-413 Designing and Implementing a Server Infrastructure

En effet, j'ai reçu un voucher de la part de Microsoft me permettant de bénéficier d'un examen gratuit sur les trois (70-417; 70-413; 70-414) me séparant du titre de MCSE Server Infrastructure 2012. Un examen coûtant 150€, c'est bienvenu et surtout bien joué commercialement ;-) En effet, ça pousse à ne pas s'arrêter au titre de MCSA 2012.

Le livre acheté : http://shop.oreilly.com/product/0790145370242.do


Je viens d'en finir la lecture, il est très bien écrit comme d'habitude avec les bouquins de chez Microsoft. Beaucoup de liens sont faits vers des articles très précis de Technet.

On sent bien qu'il va falloir beaucoup bosser la pratique... C'est donc reparti pour de longues soirées à bosser en labo.

dimanche 10 février 2013

Microsoft Surface 8 pro 128 GB : Sold out !

À peine quelques heures après sa sortie sur le store US, la tablette Microsoft Surface 8 Pro 128 GB vendue 999$ est sold out !

Il reste encore des exemplaires de la version possédant 64 GB d'espace de stockage en vente : http://surface.microsoftstore.com/store/msstore/Content/pbpage.Surface_Pro?ESICaching=off


Gagnez une visite du Datacenter Microsoft à Dublin !



Il ne vous reste que quelques jours pour tenter de gagner une des dix visites du Datacenter Microsoft à Dublin. En effet, le concours se termine le 14 février à minuit.

Afin de promouvoir la sortie de son OS serveur 2012, Microsoft offre la visite d'un jour et le voyage (aller-retour) jusqu'à Dublin.

Pour participer, vous devez résider en France Métropolitaine (Corse comprise) et être âgé de 16 ans au moins.


Pour faire partie du tirage au sort, il vous suffit de téléchager Windows server 2012.

Lien : http://technet.microsoft.com/fr-fr/evalcenter/hh670538.aspx

Bonne chance !