Memory Deep Dive Series
O sa postez azi o serie de articole scrise de Frank Denneman de la Vmware, ce mi se par foarte utile atunci cand vrei sa faci un refresh sau update la cunostinte si care sunt foarte utile in scenarii de performance optimization sau troubleshooting:
http://frankdenneman.nl/2015/02/18/memory-configuration-scalability-blog-series/
Part 1: Memory Deep Dive Intro
Part 2: Memory subsystem Organisation
Part 3: Memory Subsystem Bandwidth
Part 4: Optimizing for Performance
Part 5: DDR4 Memory
Part 6: NUMA Architecture and Data Locality
Part 7: Memory Deep Dive Summary
Si tot cam pe acelasi subiect:
Introduction 2016 NUMA Deep Dive Series:
Part 1: From UMA to NUMA
Part 1 covers the history of multi-processor system design and clarifies why modern NUMA systems cannot behave as UMA systems anymore.
Part 2: System Architecture
The system architecture part covers the Intel Xeon microarchitecture and zooms in on the Uncore. Primarily focusing on Uncore frequency management and QPI design decisions.
Part 3: Cache Coherency
The unsung hero of today’s NUMA architecture. Part 3 zooms in to cache coherency protocols and the importance of selection the proper snoop mode.
Part 4: Local Memory Optimization
Memory density impacts the overall performance of the NUMA system, part 4 dives into the intricacy of channel balance and DIMM per Channel configuration.
Part 5: ESXi VMkernel NUMA Constructs
The VMkernel has to distribute the virtual machines to provide the best performance. This part explores the NUMA constructs that are subject to initial placement and load-balancing operations.
Part 6: NUMA Initial Placement and Load Balancing Operations
The VMkernel has to distribute the virtual machines to provide the best performance. This part explores the NUMA initial placement and load-balancing operations.
Part 7: From NUMA to UMA
The world of IT moves in loops of iteration, the last 15 years we moved from UMA to NUMA systems, which today’s focus on latency and the looming licensing pressure, some forward-thinking architects are looking into creating high performing UMA systems.
Active Directory–Maximum Number of GPOs Applied
Majoritatea dintre noi nu o sa ajungem niciodata sa ne punem intrebarea din titlu, insa exista cazuri si chiar am vazut unde sunt foarte aproape de limita (si bineinteles cu multe probleme de performanta):
There is a limit of 999 Group Policy objects (GPOs) that you can apply to a user account or computer account. This does not mean that the total number of policy settings on the system is limited to 999. Rather, a single user or computer will not be able to process more than 999 GPOs. This limit exists for performance reasons.
Directory Service Comparison Tool
Luna asta am mai scris despre AD snapshots iar acum o sa povestesc despre un tool ce poate fi folosit pentru a descoperi modificari in AD, comparand snapshot-ul cu informatia actuala din AD.
Tool-ul se numeste Directory Service Comparison Tool si il gasiti aici:
http://blog.frli.se/p/dsct.html
Dupa instalare, va trebui sa deschideti o consola MMC si sa adaugati de acolo Directory Service Comparison Tool. Va trebui sa specificati unde se va conecta consola pentru a interoga AD-ul actual si snapshotul.
Nota: localhost:7000 se refera la serverul de pe care rulez tool-ul, care are pornita o instanta de DSAMAIN pe portul 7000.
Mai jos sunt cateva screenshot-uri care exemplifica ce se poate face cu acest tool. Se pot vedea obiectele nou adaugate, precum si modificarile facute obiectelor existente (puteti vedea si vechile valori ale atributelor).
In imaginea de mai jos se poate vedea cum useraccount control a fost schimbat la Password Never Expire.
E un tool ce merita retinut. Are si functie de cautare ce foloseste un filtru LDAP, dar inca se mai pot aduce imbunatatiri.
PS: Si AD Explorer poate compara snapshoturi.
New updates for old Win XP/2003
Noul val de malware de tip ransomware/worm a reusit sa faca o premiera. Si anume, ca Microsoft sa scoata update-uri pentru sisteme de operare ce nu mai sunt suportate.
https://blogs.technet.microsoft.com/msrc/2017/05/12/customer-guidance-for-wannacrypt-attacks/
Update-urile ce rezolva problema in protocolul SMB v1 au fost publicate pentru Windows XP/2003/Vista:
http://www.catalog.update.microsoft.com/Search.aspx?q=KB4012598
PS: Inca sunt foarte multi clienti din sectorul industrial si bancar ce inca ruleaza multe sisteme critice pe XP/2003. Asta a fost unul din motivele pentru care eu cred ca au lansat aceste updateuri iesind din schema. Oricum updateurile erau pregatite pentru clientii ce platesc separat contracte de suport, dar acum incearca sa faca pe baietii buni si sa incadreze NSA-ul la categoria evil.
Active Directory Snapshots & DSAMAIN
Dupa atatia ani de Active Directory inca mai sunt multe functionalitati de care majoritatea adminilor nici macar nu au auzit. Si sunt chestii de baza ce te pot ajuta in multe din activitatile zilnice de admin. Iar una din aceste functionalitati este aceea de AD Snapshots (a nu se confunda cu VM Snapshot).
Nu mai stiu daca am scris despre snapshoturi cu mecanismul builtin aici asa ca azi o sa reiau subiectul (acum aproape 10 ani scrisesem ceva pentru Technet). In schimb tin minte ca am scris despre AD Explorer care are o functie asemanatoare.
Functia de snapshot a aparut odata cu Windows Server 2008 si permite sa salvati un snapshot sau o imagine a AD-ului in momentul respectiv. Imagine ce mai apoi poate fi accesata folosind AD Users & Computers.
Nimeni nu vrea sa ajunga sa restaureze dintr-un backup de AD iar recent nici nu a mai fost nevoie de cand cu AD Recycle Bin. Dar sunt situatii cand obiectul nu a fost sters, ci atributele lui au fost modificate si nu prea ai vrea sa restaurezi din backup doar pentru asta. Dar daca ai sti ce se afla inainte in acele atribute, ai putea sa le repopulezi manual.
Iar aici snapshoturile te ajuta. Poti face snapshot-uri ale AD-ului inainte de anuminte modificari, iar daca ceva nu functioneaza asa cum trebuie, poti lua informatia din snapshot.
Si ca sa nu mai lungim vorba, ca sa facem un snapshot, folosim clasicul NTDSUTIL:
Seria de comenzi necesara este snapshot, activate instance ntds, create.
Din acest moment avem un snapshot creat si orice modificare adusa la nivelul NTDS.DIT va fi salvata in snapshot folosind copy on write.
Pentru a vedea snapshoturile existente putem folosi LIST ALL:
Primul snapshot este cel care ne intereseaza pe noi, al doilea reprezinta volumul pe care se afla baza de date (in functie de setup aici pot fi listate mai multe volume).
Tot ce trebuie sa facem acum, este sa montam snapshot-ul. Si facem asta cu MOUNT si ID-ul din prima linie (nu cea ce reprezinta volumul):
Iar acum daca folosim Windows Explorer o sa vedem ceva de genul asta:
Comanda LIST MOUNTED ne va arata tot ce am montat din NTDSUTIL:
Iar comanda UNMOUNT va demonta volumul respectiv.
Nota: comanda DELETE poate fi folosita pentru a sterge un snapshot si va recomand sa faceti asta atunci cand nu mai sunt necesare.
Ok, si acum ca avem un snapshot creat si montat, ce facem mai departe. Mai e nevoie de inca un pas, si anume de DSAMAIN cu parametrul /DBPATH si /LDAPPORT pentru a porni o instanta separata a bazei NTDS.DIT din snapshot.
In exemplul de mai sus, am pornit o noua instanta pe portul 7000 ce va rula atata timp cat DSAMAIN este pornit in acel comand prompt.
Nota: E de la sine inteles de ce nu putem folosi porturile default. Suntem pe un Domain Controller si sunt deja folosite.
Ca sa ne conectam folosim Active Directory Users and Computers si alegem optiunea Change Domain Controller:
Iar din acest moment avem acces la versiunea read only din snapshot.
La final trebuie doar sa inchidem consola si command promptul in care ruleaza DSAMAIN. Si daca este nevoie sa stergem snapshotul.
Mai trebuie sa mai spun ca DSAMAIN poate fi folosit pentr a instanta copii ale NTDS.DIT si din backup. Nu este nevoie neaparat de snapshot facut cu NTDSUTIL.
Si bineinteles, comenzile din NTDSUTIl se pot si automatiza, dar asta cu alta ocazie .
MEX Debugging Extension for WinDbg
Pentru utilizatorii inraiti de WinDBG, cateva extensii sunt binevenite:
https://blogs.technet.microsoft.com/pfelatam/2016/07/19/mex-debugging-extension-for-windbg/
https://blogs.msdn.microsoft.com/luisdem/2016/07/19/mex-debugging-extension-for-windbg-2/
Nu-s asa de noi, dar la cat de des folosesc eu Windbg era si normal sa le descopar cu intarziere.
Performance Tuning Guidelines for Windows Server 2016
Si cand spuneam ca nu mai exista documentatie de calitate pe zona de Windows Server, uite ca a venit o surpriza – Performance Tuning Guidelines for Windows Server 2016:
https://docs.microsoft.com/en-us/windows-server/administration/performance-tuning/
Sunt acoperite zone precum Active Directory, Hyper-V, File & Storage, Networking, RDS/RDP, Web & Containers.
Si remarcati ca acum se foloseste termenul Guidelines, nu Best Practices .
Disable Windows Server Auto Lock Screen
De pe la Windows Server 2012, sistemul de operare de tip server are un feature destul de incomod, mai ales pentru mediile de test. Si anume Auto Lock la ecran. Daca OS-ul nu detecteaza input de la mouse si tastatura pentru cateva minute, va bloca ecranul si va fi nevoie din nou de reintroducerea parolei.
In mod normal aceasta functionalitate este utila, atunci cand adminul uita sesiunea logata. Dar pentru cazurile cand lucram pe un laborator/mediu de test, atunci poate fi chiar enervanta.
Mai jos o sa prezint cum puteti dezactiva aceasta functionalitate, si fac asta pentru ca nu este deloc intuitiv. Pana la Windows 2012, totul era controlat prin screen saver, dar lucrurile s-au schimbat.
Deschideti Local Group Policy Editor (https://technet.microsoft.com/en-us/library/cc731745(v=ws.11).aspx):
Navigati in Computer Configuration\Policies\Administrative Templates\System\ Power Management\Video and Display Settings iar aici schimbati “Turn off the display (plugged in)” pe Enabled si cu valoarea 0.
By default setarea este pe disabled.
Dupa modificare, va fi nevoie sa rulati si un GPUPDATE /FORCE pentru o aplicare imediata.
Check if a string is null or empty
Cand lucrezi cu string-uri in Powershell de multe ori vrei sa verifici daca nu cumva string-ul este null sau contine spatii sau tab-uri. O varianta ar fi sa verifici dimensiunea lui sau sa iei fiecare caracter in parte si sa il compari.
Sau exista si o varianta mai simpla, folosind o metoda .Net – IsNullOrWhiteSpace. Asa ca puteti folosi aceasta metoda direct din Powershell ca in exemplul de mai jos:
If ([string]::IsNullOrWhiteSpace($string))
{
#do something
}
Detalii aici: https://msdn.microsoft.com/en-us/library/system.string.isnullorwhitespace(v=vs.110).aspx
Si inca o metoda asemenatoare este IsNulOrEmpty: https://msdn.microsoft.com/en-us/library/system.string.isnullorempty(v=vs.110).aspx
Veeam Backup Free Edition & Veeam Explorer for Active Directory
Veeam Backup and Replication s-a ridicat foarte mult in ultimul timp, in special pentru suportul platformelor de virtualizare si usurintei in utilizare fata de vechile produse de pe piata. Mai putin cunoscuta este versiunea free (si nu FastSCP, ci Veeam Backup and Replication, care include si suport pentru SCP si multe altele).
Eu acum o sa ma refer la un tool ce se instaleaza odata cu Veeam Backup and Replication si se numeste Veeam Explorer for Active Directory. Tool-ul va poate ajuta sa faceti recover la obiectele din AD chiar si atunci cand AD Recycle Bin nu este activat sau cand nu aveti un system state backup ci doar o copie a NTDS.DIT.
O sa incep prin a urma procesul de instalare care este banal. Cat timp nu introduci licenta, produsul functioneaza in modul free.
Odata instalat puteti porni consola principala. Nu sunt multe de vazut aici, existand destul de multe limitari in varianta free.
Link-urile catre tool-urile free le gasiti si in Program Files:
Si sa presupunem acum ca vrem sa restauram ceva dintr-o copie mai veche a unui NTDS.DIT. Putem folosi consola principala pentru a localiza fisierul sau direct Veeam Explorer for Microsoft Active Directory.
Dupa ce selectati Recover, o sa puteti sa faceti browse in copia AD offline, exact ca si cum ati utiliza ADUC:
Daca selectam optiunea advanced vom avea acces si la zonele DNS stocate in AD si la Configuration Partition. Deci vom putea restaura inclusiv inregistrari DNS.
Right click pe un obiect din lista si urmatoarele optiuni apar:
Compare va poate ajuta sa vedeti diferentele intre copia offline si online.
Din acelasi meniu se poate face si restore sau export in LDF.
PS: Acelasi procedeu se poate folosi pentru a restaura un intreg OU (mai putin optiunea compare).
Un ghid complet al versiunii free gasiti in link-ul de mai jos.
https://www.veeam.com/pdf/guide/veeam_backup_free_9_5_user_guide_en.pdf