Comment font les « grands » : Azure, Google…

Quand on s’intéresse aux architectures sous-jacentes des solutions Cloud, on remarque deux points communs:

  • Le peu de chiffres qu’on trouve donnent le vertige (oui oui, 1 Péta = 1000 Téra…)
  • Très peu d’informations sont divulgués sur l’aspect technique

Il se trouve que Google & Azure ont récemment lâchés quelques informations, surtout sur le réseau 🙂
Facebook est un peu en avance et communique davantage.

Microsoft Azure

Pour Azure, Voici des slides de Maître Russinovich (cliquer sur l’image pour ouvrir le PowerPoint (29 diapos)):

2015-06-19_14-37-27

Fait le plus marquant: ils utilisent des FPGA (processeurs programmables) pour gérer la couche réseau (40GbE/s).

Les dernières infos les plus intéressantes que j’avais eu étaient pendant les TechEd en 2012, toujours de Mark. La vidéo est encore en ligne:

  • ~10 personnes pour administrer 100 000 serveurs physiques!
  • Démonstration d’une interface d’administration Azure,
  • Vue graphique des racks avec les VM,
  • Démonstration de self healing de la plateforme,
  • Explications sur le bug du 29 février, avec la ligne de commande qui a tout planté

Google

Il semble tout indexer, sauf le contenu de son architecture technique (avec un robots.txt super efficace 😉
Techcrunch a collecté des informations intéressantes, également sur la gestion du réseau (SDN):

http://techcrunch.com/2015/06/17/google-pulls-back-curtain-on-its-data-center-networking-setup/

En 2009, ils avaient publié une visite d’un de leur datacenter, avec l’aspect d’un serveur dans un conteneur:

2015-06-19_14-56-27

Facebook

Ils sont un peu plus bavard, ça doit être dans leur DNA…:

https://code.facebook.com/posts/360346274145943/introducing-data-center-fabric-the-next-generation-facebook-data-center-network

Figure 2:

Un serveur Facebook (un ancien modèle je pense):

Le vide à l’arrière n’est pas juste pour visualiser, c’est vaiment un « trou »:

Office365

Les informations les plus présentes concernent la messagerie Exchange:

  • Pas de sauvegarde,
  • Réplication 3 + 1 Lag à 8 jours (qui descend à 0 en cas de problèmes)
  • JBOD pour le stockage (1 banque par disque dur).
  • Optimisations via Exchange 2016

Office 365 est indépendant d’Azure, même si certains services y sont hébergés et que la fusion est pour moi en approche.

Amazon

  • Ils utilisent Xen pour la virtualisation,
  • Ils font leur propres serveurs,
  • Basé sur des technos open source

Conclusions

Ils ont des besoins hors normes, mais ils ont aussi les moyens en conséquences:

  • Maîtrise complète de toute la chaîne: datacenter, réseau, serveurs, OS, hyperviseur, applications, répartiteurs de charges, moteurs SQL
  • Développements dans les couches basses : SDN, FPGA…
  • Code source (et personnes pour le faire évoluer): Windows pour Microsoft, Linux pour Google,Facebook et Amazon
  • Ils s’appuient sur des projets Open source (OpenFlow, memcache, Hadoop…) mais en ont des extensions propriétaires
  • S’il le juge utile, ils peuvent dépenser des moyens colossaux sur certains sujets (comme Google avec son SDN logiciel).

Tout cela leur donne une indépendance forte vis à vis des autres entreprises et leur rachats éventuels part des concurrents. Certains sujets sont certainement plus économique par rapport à la volumétrie (par exemple en économisant $50 par serveur, x300 000)

Là où pour nous c’est parfois le top du top (géo cluster, DRP, LB), c’est le minimum syndical pour eux. Une fois cette barrière levée, un nouveau boulevard s’ouvre avec la montée en charge.

SharePoint – DateTimeControl – unexpected error – iframe – Object reference not set to an instance of an object

Problème

Dans une solution existante, j’ai un contrôle de type DateTime:

<Sharepoint:DateTimeControl ID="DateTimeControl1"  dateonly="true" ShowWeekNumber="true" FirstDayOfWeek="1" FirstWeekOfYear="2" runat="server" EnableViewState="true"></sharepoint:DateTimeControl>

Cependant au lieu d’avoir le contrôle, j’ai eu un message d’erreur à la place (An unexpected error has occurred):

2014-12-10_09-45-35

 

Dans le log ULS:

Medium Application error when access /_layouts/15/iframe.aspx, Error=Object reference not set to an instance of an object. at Microsoft.SharePoint.Utilities.SPUtility.GetThemedImageUrl(String originalUrl, String themeKey) at Microsoft.SharePoint.WebControls.DatePicker..ctor() at Microsoft.SharePoint.WebControls.SPDatePickerControl.InitDatePicker() at Microsoft.SharePoint.WebControls.SPDatePickerControl.set_ShowWeekNumber(Boolean value) at Microsoft.SharePoint.ApplicationPages.DatePickerFrame.Page_Load(Object sender, EventArgs e) at System.EventHandler.Invoke(Object sender, EventArgs e) at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
Unexpected System.NullReferenceException: Object reference not set to an instance of an object. at Microsoft.SharePoint.Utilities.SPUtility.GetThemedImageUrl(String originalUrl, String themeKey) at Microsoft.SharePoint.WebControls.DatePicker..ctor() at Microsoft.SharePoint.WebControls.SPDatePickerControl.InitDatePicker() at Microsoft.SharePoint.WebControls.SPDatePickerControl.set_ShowWeekNumber(Boolean value) at Microsoft.SharePoint.ApplicationPages.DatePickerFrame.Page_Load(Object sender, EventArgs e) at System.EventHandler.Invoke(Object sender, EventArgs e) at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

 

Solution

Il faut créer une collection site à la racine de l’application web (/).

Simple, mais SharePoint est capricieux comme toujours.

 

Windows – compteur de performance – unable to add these counters

Problème

Soudainement, un de mes serveurs Windows 2012 a eu son compteur de performance réseau HS. En lançant perfmon sur le serveur:

2014-08-20_21-49-38

 

Solution

Lancer lodctr /R ne résous pas le problème. Le compteur est là mais en fait il est désactivé. En lançant lodctr.exe /Q:

[Tcpip] Performance Counters (Disabled)
 DLL Name: %SystemRoot%System32Perfctrs.dll
 Open Procedure: OpenTcpIpPerformanceData
 Collect Procedure: CollectTcpIpPerformanceData
 Close Procedure: CloseTcpIpPerformanceData

 

Il suffit donc de l’activer de nouveau:

lodctr.exe /E:Tcpip

 

L’histoire ne dit pas ce qui l’a désactivé au départ…

 

 

RDP 2012(R2) – session collection – profile disk – 800391163

En créant une collection de session sous Windows 2012/2012R2, et en spécifiant un partage pour stocker les profils, vous rencontrez l’erreur 800391163:

rdp2012_session_profile_disk_800391163

Lors de la configuration, un des serveurs RDP va créer le modèle de profil avec sont compte local système:

rdp2012_session_profile_disk_procmon

En détail:

rdp2012_session_profile_disk_procmon2

Bien que vous ayez donné les droits NTFS aux comptes ordinateurs, cela ne passe toujours pas.

Il faut donner « everyone » en « full control » au niveau du partage, « change » ne suffit pas:

rdp2012_session_profile_disk_share

Et voilà une affaire de résolue ^^

Spécialiste Microsoft, un avenir sombre ?

Cet article fait partie d’une série. Voici le premier !

 

J’imagine que l’actualité Microsoft ne vous aura pas échappée depuis quelques mois, et que Microsoft n’est plus seulement un « éditeur de logiciel ».

Bien que cet article porte particulièrement sur l’offre phare Office 365 de Microsoft, quelques nouvelles inquiétantes :

  • Microsoft soucieux d’apprendre comment Yammer (qui ne fait que du SaaS) fait pour livrer aussi souvent des nouveautés. L’intégration complète avec SharePoint et pour la version office365 pour l’instant.
  • Fin des abonnements Technet. Le « remplacement » proposé est d’utiliser les versions d’évaluations. On a tous le temps de réinstaller toute notre plateforme de test à intervalle régulière, c’est sûr. Sinon y a toujours MSDN, mais l’abonnement est autour de 6000€ pour avoir les mêmes droits. Pétition ici.
  • Windows 8.1/2012R2 est RTM mais n’est accessible qu’aux fabricants de matériels. Exit les Technet (qui l’ont encore), les MSDN et autres. Tout ce beau monde l’aura…en même temps que tout le monde.
  • Doublement du stockage sur Office 365 pour le même prix.
  • Fin des certifications MCM. Microsoft ne reconnaitra plus de « gourous » sur ses produits.

Microsoft a bien saisi les avantages de fournir du SaaS plutôt que de vendre ses solutions. Sauf que ce dernier a toujours reposé sur des partenaires pour compléter leurs offres et promouvoir leurs produits… Et des ingénieurs pour les déployer.

Bien que tout cela mette du temps avant d’impacter les admins/ingénieurs/experts/architectes utilisant fortement les technologies Microsoft, il vaut peut-être mieux anticiper un plan B « au cas où ».

dcdiag – VerifyEnterpriseReferences – msDFSR-ComputerReferenceBL – Q312862

En préparant un plugin nagios sur la santé AD, dcdiag /e /c a eu la bonne idée de remonter cette alerte:

Starting test: VerifyEnterpriseReferences

The following problems were found while verifying various important DN

references. Note, that these problems can be reported because of

latency in replication. So follow up to resolve the following

problems, only if the same problem is reported on all DCs for a given

domain or if the problem persists after replication has had

reasonable time to replicate changes. 

 [1] Problem: Missing Expected Value

Base Object: CN=myDC,OU=Domain Controllers,DC=mydomain,DC=net

Base Object Description: "DC Account Object"

Value Object Attribute Name: msDFSR-ComputerReferenceBL

Value Object Description: "SYSVOL FRS Member Object"

Recommended Action: See Knowledge Base Article: Q312862

 

L’article Q312862 n’est plus vraiment d’actualité, mais le problème sous-jacent est bien réel.

Depuis Windows 2008, la réplication AD est censée se faire via DFS-R et non plus FRS. Cependant, cela implique de n’avoir plus que des DC > Windows Server 2003.

Donc si vos DC sont à jours, il faut utiliser dfsrmig dont les principales commandes sont:

Vérifier l’état global:

PS C:usersmchateauDesktop> dfsrmig /GetGlobalState

Current DFSR global state: 'Start'

Succeeded.

Les différents états possibles sont:

0 'Start'
1 'Prepared'
2 'Redirected'
3 'Eliminated'

==>Si vous êtes déjà en DFS-R, l’état est Eliminated.

 

Vérifier l’état de la migration:

PS C:usersmchateauDesktop> dfsrmig /GetMigrationState

All domain controllers have migrated successfully to the Global state ('Start').
Migration has reached a consistent state on all domain controllers.
Succeeded.

 

Passer à l’état Prepared:

PS C:usersmchateauDesktop> dfsrmig /SetGlobalState 1

Current DFSR global state: 'Start'

New DFSR global state: 'Prepared'

Migration will proceed to 'Prepared' state. DFSR service will copy the contents of SYSVOL to SYSVOL_DFSR folder.
If any domain controller is unable to start migration, try manual polling.
Or run with option /CreateGlobalObjects.
Migration can start anytime between 15 minutes to 1 hour.
Succeeded.

 

Vérifier l’état (en cours):

PS C:usersmchateauDesktop> dfsrmig /GetMigrationState

The following domain controllers have not reached Global state ('Prepared'):

Domain Controller (Local Migration State) - DC Type
===================================================

myDC01 ('Start') - Writable DC
myDC02 ('Start') - Writable DC
myDC03 ('Start') - Primary DC
myDC04 ('Start') - Writable DC

Migration has not yet reached a consistent state on all domain controllers.
State information might be stale due to Active Directory Domain Services latency.
PS C:usersmchateauDesktop>

 

Il ne reste plus qu’à faire les 2 états suivants tour à tour:

dfsrmig /SetGlobalState 2
dfsrmig /SetGlobalState 3

 

Au final:

PS C:usersmchateauDesktop> dfsrmig /GetMigrationState
All domain controllers have migrated successfully to the Global state ('Eliminated').
Migration has reached a consistent state on all domain controllers.
Succeeded.

SCOM 2012 : De l’installation à l’exploitation, mise en oeuvre et bonnes pratiques

Update: le livre est ouvert à la vente sur le site ENI et dans les librairies… Bonnes lectures 🙂 N’hésitez pas à me donner votre avis ^^

Un peu d’auto promo sur un livre que j’ai écris et qui sort pour noël 🙂

Il porte sur System Center Operations Manager (SCOM) 2012, depuis l’installation jusqu’à l’exploitation des alertes.
Il couvre à la fois les aspects techniques (règles vs moniteurs) mais aussi la manière de gérer et d’exploiter la solution.

Il répond aux besoins d’expertise du lecteur en traitant de façon approfondie, d’un point de vue théorique et pratique, de l’architecture à la supervision applicative, en passant par ledéploiement, les rapports, la création de packs et l’exploitation. L’aspect technique n’étant qu’une partie d’un projet SCOM, l’auteur présente également une méthode pour gérer le flux d’alertes, enrichie de ses retours d’expérience.

Aperçu de la table des matières :

Introduction (Pourquoi SCOM, Le mode de fonctionnement, Le modèle de licence, SCOM vs Nagios, Nouveautés depuis SCOM 2007…)

Architecture SCOM (Introduction, Composants SCOM, Capacity planning, Consommation réseau, Gestion de la sécurité, Haute disponibilité…)

Déploiement(Introduction, Installation initiale, Mise à jour depuis SCOM 2007, Accéder à la plateforme, Configuration initiale, Gestion des droits…)

Mise sous supervision (Introduction, Déploiement agent Windows, Compte restreint, Déploiement agent Linux, Supervision SNMP, Supervision Web…)

Exploitation de la supervision (Introduction, Présentation des consoles, Règle vs moniteur, Explorateur d’intégrité, Effet sapin de noël, Temps de maintenance, Bonnes pratiques…)

Les rapports (Introduction, Utilisation des rapports standards, La base entrepôt, Report Builder, Business Intelligence Development Studio, Suivi du niveau de service…)

Les packs d’administration (Introduction, Importation de packs, Remplacements, Packs de la communauté, Objets de packs, Création de packs…)

Supervision applicative (Introduction, Applications distribuées, Applications Web .Net, Applications Java J2E…).

 http://www.editions-eni.fr/livres/scom-2012-system-center-operations-manager-de-l-installation-a-l-exploitation-mise-en-oeuvre-et-bonnes-pratiques/.2f80e3011dd5984d7046b876f446d463.html

Si vous n’avez pas encore envoyé votre lettre au père noël, il est encore temps ! 😉

SharePoint 2010 – erreur – suppression d’un serveur SQL référence – wss_administration

Symptômes:

En voulant supprimer un ancien serveur SQL sur SharePoint depuis l’administration centrale:

An object in the SharePoint administrative framework, "SPDatabaseServiceInstance Name= could not be deleted because other objects depend on it. Update all of these dependants to point to null or different objects and retry this operation. The dependant objects are as follows: SPWebService Name=WSS_Administration

Correction:

Vous avez déplacé la base (à priori ;)) mais il SharePoint en a gardé une référence. Vous pouvez alors utilisé une application Web qui pointe sur le bon serveur pour mettre à jour celui de l’administration centrale:

$centralAdmin=Get-SPWebApplication -IncludeCentralAdministration | ? {$_.DisplayName -match ‘SharePoint Central Administration’}
$goodExample=Get-SPWebApplication -identity ‘http://mygoodwebapp’
$centralAdmin.Parent.DefaultDatabaseInstance=$goodExample.Parent.DefaultDatabaseInstance
$centralAdmin.Parent.Update()
$centralAdmin.Update()

Utilisez les alias SQL pour la prochaine fois 🙂

Internet Information Services (IIS) Manager. Bad Data. (Exception from HRESULT: 0x80090005)

Symptômes:

Lorsque vous accédez à la console IIS ou aux pools d’applications, vous avez l’erreur suivante:

Bad Data. (Exception from HRESULT: 0x80090005)

Causes:

Vous avez copié le fichier de configuration de IIS d’une machine à l’autre (C:WindowsSystem32inetsrvconfigapplicationHost.config)

Ce dernier contient des comptes Windows pour certains pools d’applications. Le mot de passe est encrypté en utilisant une clé locale à la machine, l’autre serveur n’arrive donc pas à les décrypter.

Corriger le mot de passe à la main depuis la console IIS ne résous pas le problème.

Résolution:

2 possibilités:

  • Faire un retour arrière sur le serveur où la configuration a été copiée. Par défaut IIS garde une copie des 10 derniers fichiers de configuration (C:inetpubhistory)
  • Utiliser la méthode supportée pour copier la configuration.

Exporter la configuration:

aspnet_regiis -px "iisConfigurationKey" "C:iisConfigurationKey.xml" -pri 
aspnet_regiis -px "iisWasKey" "c:iisWasKey.xml" –pri

Importer sur la cible:

aspnet_regiis -pi "iisConfigurationKey" "C:iisConfigurationKey.xml" 
aspnet_regiis -pi "iisWasKey" "C:iisWasKey.xml"