sábado, 27 de febrero de 2016

Clustered Storage Spaces - Parte 2

En el post Clustered Storage Spaces - Parte 1 creamos un Storage Space para el cluster TestCluster

Tal como describe el post anterior usaremos este storage space como almacenamiento de máquinas virtuales en el cluster de Hyper-V.

Para ello, lo primero que debemos hacer es agregar el Clustered Storage Space a un CSV (Cluster Shared Volume)


Para acceder al CSV, desde cualquier nodo del cluster abrimos la ruta C:\ClusterStorage\
Puede verse el volumen recientemente creado, al cual el CSV le asigna automáticamente el nombre Volume1























Es conveniente renombrar los volúmenes para su posterior identificación, en nuestro ejemplo lo nombramos como ClusterTestVolume1



A continuación copiamos en este volumen un VHD que será parte de una máquina virtual altamente disponible













Creación de la Máquina Virtual altamente disponible:
Desde la consola de administración del cluster, en el nodo Roles, cremos una nueva Máquina Virtual

 Luego seleccionamos el nodo propietario del recurso VM

















Configuramos el nombre de la máquina virtual (VMClusterTest1) y establecemos como ubicación el CSV


 Usamos como disco de la VM el VHD recientemente copiado al CSV


Puede verse la VM creada como un Rol altamente disponible en el cluster. Su almacenamiento es un Clustered Storage Space que hemos convertido a CSV.











Clustered Storage Spaces - Parte 1

Introducción a Storage Spaces:

Microsoft introdujo los "Storage Spaces"con Windows Server 2012. Esta tecnología permite virtualizar almacenamiento agrupando discos en “Storage Pools” y luego creando discos virtuales llamados Storage Spaces.

El Storage Pool es una colección de discos físicos que permite agregar discos y expandir su capacidad de una manera flexible.

Un Storage Space es un disco virtual que permite una abstracción del hardware. Se crea partiendo de espacio disponible en un Storage Pool.

El objetivo de este post es mostrar cómo usar Storage Spaces en un Failover Cluster y configurarlo luego como CSV (Clustered Shared Volume) para almacenamiento de máquinas virtuales en un cluster de Hyper-V

Nuestro escenario consiste de un cluster llamado TestCluster formado por dos Hosts Windows Server 2012 R2. Se  presentan al cluster tres discos disponibles en un storage compartido (para poder usarse en un cluster, los discos del pool deben estar online sin particiones creadas)

Ejecutamos Get-PhysicalDisk y vemos que hay tres discos físicos que pueden formar parte de un pool (Can Pool – True)













Desde la consola de Failover Cluster Manager iniciamos el asistente para crear el nuevo Storage Pool, que llamamos TestPool. Se puede observar el almacenamiento disponible (llamado Primordial) administrado por el cluster TestCluster































Luego se seleccionan los tres discos disponibles como parte del pool con asignación automática (las otras dos opciones son Manual y Hot Spare)





Completada la tarea podemos marcar la opción para crear el disco virtual cuando el asistente se cierra. 
En este ejemplo no lo hicimos, para mostrar cómo crearlo a través de Server Manager

En la consola de Server Manager puede verse el pool TestPool y los tres discos que lo integran.
En la sección Virtual Disk, expandimos Tasks y seleccionamos “New Virtual Disk”





























En la pantalla siguiente vemos que el pool seleccionado es TestPool y seguimos adelante con el proceso


















Especificamos como nombre TestVDisk





















Seleccionamos como disposición Parity Space (esta disposición requiere tres discos como mínimo, ya que se asemeja a un RAID 5)




























Elegimos que use el máximo tamaño y procedemos a la creación del disco virtual
























































El último paso es crear el volumen que verá Windows basado en este disco virtual. Para eso dejamos marcada la opción “Create a volume when this wizard closes”




























En la pantalla siguiente seleccionamos el cluster TestCluster y vemos que el volumen es reconocido como Disk6 (este número puede variar de acuerdo a la cantidad de discos presentes)

Dejamos el tamaño máximo del volumen, le asignamos la letra de unidad F y le configuramos como etiqueta  TestVirtVolume
 





























Confirmamos la selección y creamos el volumen





























En la consola Failover Cluster Manager puede verse el Pool identificado como Cluster Pool 1


El cluster nos muestra el nuevo disco TestVdisk como storage disponible


 Mediante Powershell podemos verificar los discos físicos existentes y los volúmenes


















El volumen que representa el Clustered Storage Space es el volumen TestVDisk





martes, 16 de febrero de 2016

Windows Server – Manejo de Paging File en 64-bit OS

Muchos de mis alumnos y pares me preguntan a diario como manejar el paging file en los nuevos sistemas operativos de 64-bit. Durante largos años hemos dejado al Sistema Operativo manejar el PF y ante una eventual necesidad de hacer troubleshooting, lo configurábamos a mano aplicando la formula:
Memoria RAM*1,5 = Paging File.
En las siguiente líneas explicaré Porqué es necesario el Page File y Cómo calcularlo de manera correcta.  Voy a mantener el artículo original en Inglés de un Blog de Microsoft en el cual colaboré oportunamente.
As Microsoft Stated on this KB Document -> KB 2860880
Why a Page File?
“The page file can be used to “back” (or support) system crash dumps and extend how much system-committed memory (also known as “virtual memory”) a system can back. It also enables the system to remove infrequently accessed modified pages from physical memory to let the system use physical memory more efficiently for more frequently accessed pages.”
What happen with the new OS technology -> 64-bits OS
64-bit versions of Windows and Windows Server support more physical memory (RAM) than 32-bit versions support. However, the reason to configure the page file size has not changed. It has always been about supporting a system crash dump, if it is necessary, or extending the system commit limit, if it is necessary.
How to Page File is or should calculated….

System committed memory

The system commit limit is the sum of physical memory and all page files combined. It represents the maximum system-committed memory (known as the “system commit charge”) that the system can back. The system commit charge is the total committed or “promised” memory of all committed virtual memory in the system. If the system commit charge reaches the system commit limit, the system and processes might not obtain committed memory. This condition can cause hangs, crashes, and other malfunctions. Therefore, make sure that you set the system commit limit large enough to back the system commit charge during peak usage.
The system commit charge and system commit limit can be measured on the Performance tab in Task Manager or by using “\Memory\Committed Bytes” and “\Memory\Commit Limit” performance counters.
The “\Memory\% Committed Bytes In Use” counter is a ratio of the “\Memory\Committed Bytes” to “\Memory\Commit Limit” values.
For Windows 2008 R2, 2012 and 2012 R2 the page file size formula should be:
(Max value of Committed Bytes + additional 20% buffer to accommodate any workload bursts)-RAM size
For example: If the server has 32 GB RAM and the maximum of Committed Bytes is 34 GB (after 1 week of confidence metric captured with Perfmon), then the recommended page file will be:
(34*1.2)-32)  =  8,8GB
Espero les sirva para demistificar algo que es simplemente…. sencillo
Link a mi Blog -> https://marioganem.wordpress.com/2016/02/16/windows-server-manejo-de-paging-file-en-64-bit-os/

lunes, 8 de febrero de 2016

Cómo conectarse a Office365 mediante Powershell ?

Escenario

A menudo el administrador de Office365 necesitar automatizar sus tareas diarias, y no hay nada mejor que hacerlo mediate Microsoft PowerShell.
Para poder conectarse y administrar Office365 se deberá primero importar los módulos necesarios y crear las respectivas sesiones remotas a los servicios. En las siguientes líneas te mostraré como importar los siguientes módulos:
  • Azure Active Directory
  • Sharepoint Online
  • Skype for Business
Exchange Online no requiere de la importación de un módulo, solamente se deberá establecer la sesión remota.
El motivador por el cual escribo esta entrada en mi blog, es la falta de documentación de un proceso paso a paso mediante PowerShell.

Paso a Paso

Capturar las credenciales
$credential = get-credential

Importar el módulo de "Azure Active Directory"
Import-Module MSOnline

Establecer una conección con "Azure Active Directory"
Connect-MsolService -Credential $credential

Importar el módulo de "Skype for Business Online"
Import-Module LyncOnlineConnector

Crear una sesión remota para "Skype for Business Online"
$lyncSession = New-CsOnlineSession -Credential $credential

Importar los cmd lets de "Skype for Business Online"
Import-PSSession $lyncSession

Importar los cmd lets de "Sharepoint Online"
Import-Module Microsoft.Online.Sharepoint.PowerShell

Crear una sesión remota para "Exchange Online"
$ExchangeSession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri "https://outlook.office365.com/powershell-liveid/" -Credential $credential -Authentication "Basic" -AllowRedirection

Importar los datos de la sesión remota en PowerShell
Import-PSSession $ExchangeSession

Aclaraciones

Es muy común encontrar publicaciones que nos invitan a correr tal o cual comando, pero que al tratar de hacerlo el interprete de PowerShell no lo encuentra.
PowerShell podrá interpretar aquellos comandos cuyos módulos hayan sido instalados e importados de antemano. En otra entrada de mi Blog dedicaré algunas líneas a este tópico, mientras tanto recomiendo que echen un vistazo a la siguiente públicación de Joe Davies.

Link a la publicación en Inglés

http://blogs.technet.com/b/solutions_advisory_board/archive/2015/12/21/closing-the-loop-improving-office-365-powershell-content-for-administrators.aspx 

Script de Ejemplo (Link a OneDrive)

Mi Blog Personal -> http://marioganem.wordpress.com/