View Łukasz Herman's LinkedIn profileView my profile

statystyki www stat.pl

sobota, 15 marca 2008

Ostatnio zastanawiałem się jak by tu sobie umilić instalację systemu. W zasadzie mam ghosta zrobionego i na nim wszystkie najważniejsze rzeczy zainstalowane, ale co gdyby chciał u kogoś zainstalować dokładnie taki sam pakiet? Obraz ghosta nie jest przenaszalny, a ręczna instalacji wszystkiego i zastanawianie się o czymś nie zapomniałem nie ma dużego sensu.

Jednym z ciekawszych rozwiązań jest nawet wbudowane w proces instalacji systemu z płyty cd. Możemy skorzystać z pliku cmdlines.txt i skonfigurować instalator by instalował najnowszą wersję klienta usług terminalowych, WMP, czy kilka przydatnych paczek aktualizacji.

Use Cmdlines.txt to Deploy Updated Windows XP

niedziela, 09 marca 2008

Aż dziwne, że wcześniej nie pisałem na blogu o projekcie Singularity (tylko raz wspomniałem o nim). A chyba warto coś o nim wiedzieć.

W 2003 roku pojawiła się myśl całkowitego przeprojektowania systemu operacyjnego. Wszystkie popularne dzisiaj systemy mają swoje korzenie jeszcze z lat 60 ubiegłego wieku. Jednak realia diametralnie się zmieniły od tego czasu.

Dlatego powstał projekt Singularity - pomysł stworzenia nowego systemu, od podstaw, w nowoczesnym zarządzanym języku programowania. Singularity nie miał nigdy być zastępstwem Windowsa. Jest to tylko, a może aż, projekt sprawdzający od strony praktycznej zastosowanie nowych technologii. Odpowiada na pytanie czy można zrobić coś innowacyjnego, stosując ogólnie dostępne narzędzia. Singularity został napisany w C#, a jego największymi zaletą może być właśnie fakt, że został napisany w kodzie zarządzanym.

Singularity OS operating system schema MS

A samym projekcie możemy więcej przeczytać pod adresem http://research.microsoft.com/os/singularity/

Pierwsze informacje o Singularity pojawiły się ok 1,5 roku temu i było nawet o tym głośno, więc pewnie wiele osób zaciekawi dlaczego piszę o tym dopiero teraz? Nie, nie dlatego, że mi się nudzi.

4 marca Microsoft udostępnił cały kod źródłowy Singularity, wraz z paczką narzędzi deweloperskich publicznie. Jest on dostępny za darmo do użytku akademickiego, niekomercyjnego na CodePlex'ie.

Być może kogoś to zainteresuje, bo projekt od początku wydawał się bardzo ciekawy.

Singularity RDK - http://www.codeplex.com/singularity

sobota, 08 marca 2008

After a while 

After a while you learn the subtle difference
Between holding a hand and chaining a soul,

And you learn that love doesn't mean leaning
And company doesn't mean security,

And you begin to learn that kisses aren't contracts
And presents aren't promises

And you begin to accept your defeats
With your head up and your eyes open,

With the grace of a woman,
Not the grief of a child

And you learn to build all your roads on today,
Because tomorrow's ground is too uncertain for plans
and futures have a way of falling down in mid-flight.

After awhile you learn that even sunshine
Burns if you get too much

So you plant your own garden and decorate your own soul,
In stead of waiting for someone to bring you flowers

And you learn that you really can endure...
That you really are strong
And you really do have worth,
and you learn and learn...
With every good bye you learn...

Veronica A. Shoffstall

 

Jakby ktoś chciał to znalazłem takie tłumaczenie na język polski:

 

Kiedyś 

Kiedyś nauczysz się dostrzegać subtelną różnicę
Między trzymaniem się za ręce a połączeniem dusz,

I dowiesz się, że miłość to nie tylko pożądanie,
A przebywanie w czyimś towarzystwie nie oznacza bezpieczeństwa.

I zaczniesz zdawać sobie sprawę, że pocałunki nie są przypieczętowaniem umowy na całe życie,
A prezenty nie są obietnicami,

A potem zaczniesz akceptować swoje porażki
I znosić je z podniesioną głową, otwartymi oczami

I wdziękiem osoby dorosłej,
A nie z żalem i gniewem dziecka,

I nauczysz się kroczyć drogami własnej codzienności,
Ponieważ jutro jest zbyt niepewne by coś na nim budować.

Po pewnym czasie przekonasz się, że nawet rozkoszne ciepło słońca parzy skórę,
Gdy zbyt długo go zażywasz.

Zasadź więc własny ogród i przystrój swą duszę,
zamiast czekać, aż ktoś przyniesie ci kwiaty.

I przekonaj się, że naprawdę potrafisz wiele znieść...
Że naprawdę jesteś silna,
I że masz swoją wartość.

Veronica A. Shoffstall 

wtorek, 04 marca 2008

Przeglądając dzisiaj mój profil użytkownika w systemie, zauważyłem w nim katalog .VirtualBox. Wcześniej instalowałem kilka systemów w tym programie, jednak po przesiadce na Hyper-V usunąłem obrazy maszyn w nim utworzonych. Jednak okazało się, że zapomniałem o snapshotach, które sobie po cichu siedziały w tym katalogu, zajmując dosyć sporo miejsca na dysku. A ja się dziwię dlaczego ten profil taki ogromny.

Maszyny wirtualne instaluję zawsze w jednym, specjalnie do tego celu utworzonym folderze. Jednak nie przyszło mi na myśl by szukać gdzie zostały zapisane snapshoty, a już na pewno nie wpadłbym, że mogły zostać zapisane w folderze w głównym katalogu profilu, gdzie raczej nikt bez powodu nie zagląda. 2GB to jest jednak trochę sporo miejsca, szczególnie na dysku laptopowym.

Snapshoty są to zrzuty stanu systemu operacyjnego maszyny wirtualnej (VM), dzięki którym szybko możemy przywrócić stan systemu do dowolnego, wcześniej utworzonego snapshota. Ale bynajmniej nie jest to metoda backupu, co tylko użyteczna funkcjonalność, bez której trudno by było sobie teraz wyobrazić pracę z maszyną wirtualną.

Dlatego coraz bardziej zaczyna podobać mi się Hyper-V. Wszystkie snapshoty w nim utworzone są zapisywane domyślnie w tym samym folderze co wirtualny dysk twardy (VHD). Jednak kwestia snapshotów jest moim zdaniem nieco lepiej rozwiązana niż w innych produktach.

W konsoli zarządzania Hyper-V nie mamy wiele zaawansowanych zagadnień związanych ze snapshotami. Możemy je tworzyć, usuwać, przywracać. W zasadzie tyle samo co w innych produktach umożliwiąjacych wirtualizację systemu operacyjnego, Ciekawsze jednak staje się to, co dzieje się poza naszymi oczami. W folderze w którym mamy obrazy VHD maszyn wirtualnych znajdują się dwa katalogi. Jeden z konfiguracją naszych VM, drugi ze snapshotami. Wreszcie wszystko w jednym miejscu, bez szukania po systemie z pytaniem gdzie to teraz może być.

Tworzenie snapshota maszyny wirtualnej

Jeżeli przyjrzymy się takiemu snpshotowi, powinniśmy zacząć kojarzyć rozszerzenie - avhd. Dysk VM to plik vhd. Zbieżność nieprzypadkowa. Jest to automatycznie generowany dysk różnicowy na podstawie pliku vhd (lub poprzedniego snapshota). Zawiera on zmiany jakie zostały wykonane na wirtualce. Jeżeli jednak dużo operujemy na danych, oraz zdecydowaliśmy się na wykorzystywanie snapshotów, prędzej czy później okaże się, że strasznie szybko zaczyna ubywać miejsca na dysku. W takich sytuacjach pierwsze co przychodzi na myśl to usunięcie zbędnych plików na maszynie wirtualnej. Jednak w praktyce, poza tym, że pliki te już nie będą widoczne w systemie, będą dostępne na którymś ze wcześniejszych snapshotów lub dysku. Tak więc miejsca wcale nie ubędzie. Niestety w takim wypadku jedyne co możemy wykonać to rezygnacja ze snapshotów.

W czasie gdy komputer nie będzie używany, usunięte snapshoty (pliki avhd) powinny zostać zmergowane z dyskiem maszyny (plikiem VHD). Jednak w wersji beta, która aktualnie jest dostępna, możemy natrafić na bug z tym związany. Snapshoty zostaną, miejsca będzie ciągle ubywało, a my będziemy bezradni, chyba że...

Skorzystamy z metody niewspieranej, nie dającej pewności powodzenia, ale dającej dużo satysfakcji jeżeli się uda. Istnieje sposób by wykonać operację połączenia obrazu snapshota z plikiem VHD ręcznie. Jak już wcześniej napisałem, plik AVHD niewiele różni się od VHD. A w zasadzie to rózni się tylko rozszerzeniem :) Jest to ten sam folder dysku. A co za tym dalej idzie, jeżeli byśmy chcieli wyciągnąć jakiś plik z poprzedniego snapshota, to będziemy mogli to zrobić nawet bez instalacji dodatkowego oprogramowania. Taki dysk można podłączyć (podmontować) w systemie z rolą Hyper-V w trybie tylko do odczytu.

Drzewo katalogów VM, Hyper-V, VHD, XML

Wracając jednak to połączenia kilku dysków, bo tak możemy się teraz odnosić do plików avhd i vhd, musimy odnaleźć plik konfiguracyjny naszej maszyny wirtualnej. Oczywiście jest on zapisany tam, gdzie znajduje się plik vhd, a dokładniej w folderze Virtual Machines. W tym pliku XML odszukujemy informacji o nazwie i ścieżce do aktualnie wykorzystywanego dysku.

<controller0>
      <drive0>
        <pathname type="string">C:\Virtual\Snapshots\C70454AD-AC6B-4F94-A4F4-9B14215AF8E7\Win2k3_786AE6D8-F6A2-4E77-903A-C3A109F615C8.avhd</pathname>
        <type type="string">VHD</type>
      </drive0>
    </controller0>

Po czym wystarczy zmienić rozszerzenie z avhd na vhd. Po czym możemy przystąpić do łączenia go z poprzednim snapshotem. To, który plik odpowiada któremu snapshotowim, możemy dowiedzieć się z kolejności ich zapisywania. Oczywiście wszystko jest zapisane w pliku XML.

<snapshots>
      <list>
        <node0>
          <guid type="string">5816765C-4508-4432-92CF-5A3F313A35CA</guid>
        </node0>
        <node1>
          <guid type="string">6CEB9C5C-A369-40FD-A8B7-390A140D4804</guid>
        </node1>
        <node2>
          <guid type="string">AB8E840F-2F8E-4920-8C88-CB2E9CFB8449</guid>
        </node2>
        <size type="integer">3</size>
      </list>
    </snapshots>

Wszystkie snapshoty są w jednym katalogu, więc bez problemu powinniśmy je zidentyfikować. Oczywiście warto by było po całej operacji nieco zmodyfikować ten plik konfiguracyjny, aby wszystko zgadzało się rzeczywistością.

poniedziałek, 03 marca 2008

Nie, nie napiszę jak uruchomić Aero (a da się), ale coś, co bardziej może zainteresować administratorów od strony technicznej Windows Server 2008. Czyli co jeszcze zmienić by było trochę/dużo szybciej.

A w zasadzie tylko link to pliku:

Performance Tuning Guidelines for Windows Server 2008

A tam już przeczytać możemy o:

  • Performance Tuning for Server Hardware
  • Performance Tuning for Networking Subsystem
  • Performance Tuning for Storage Subsystem
  • Performance Tuning for Web Servers
  • Performance Tuning for File Servers
  • Performance Tuning for Active Directory Servers
  • Performance Tuning for Terminal Server
  • Performance Tuning for Terminal Server Gateway
  • Performance Tuning for File Server Workload (NetBench)
  • Performance Tuning for Network Workload (NTttcp)
  • Performance Tuning for Terminal Server Knowledge Worker Workload
  • Performance Tuning for SAP Sales and Distribution Two-Tier Workload
Miłego czytania i zabawy z win2k8.
niedziela, 02 marca 2008

Prędzej czy później zdarzy się, że jedna z maszyn będzie bardziej obciążona, przez co szybkość działania systemu hosta będzie odczuwalnie mniejsza. Jednak gdy popatrzymy do Task managera, okaże się, że obciążenie procesora jest stosunkowo małe, tymczasem nic nie możemy zrobić na systemie. Dlaczego?

Przyzwyczailiśmy się pewnie do tego, że aby sprawdzić obciążenie procesora uruchamialiśmy Task managera. Jeżeli mamy zamiar korzystać z Hyper-V, najlepsza pora by zmienić to przyzwyczajenie.

Task manager pokazuje użycie procesora przez system. Jeżeli do tej pory korzystaliśmy np. z VPC lub Virtual Servera, nie było żadnych problemów. Jednak jeżeli zaczynamy korzystać z hypervisora, nie dostaniemy wyniku dla całego komputera, lecz tylko dla danej kopii uruchomionego systemu.

Hypervisor jest to dodatkowa warstwa pomiędzy systemami operacyjnymi a sprzętem (tłumaczy wszystkie polecenia, itp.). Żadna maszyna wirtualna nie działa na systemie z zainstalowaną rolą Hyper-V, ale na hypervisorze, który jest uruchamiany i konfigurowany przez wyżej wymienioną rolę.

Jeżeli więc chcemy poznać rzeczywiste użycie procesora, musimy odwołać się bezpośrednio do hypervisora. Możemy to zrobić na przykład poprzez perfmona (Performance Monitor) dodając odpowiednie liczniki z gałęzi Virtualization. Na przykład %Guest Run Time i/lub %Hypervisor Run Time. W ten sposób możemy sprawdzić jakie obciążenie generują systemy operacyjne, oraz jakie obciążenie generuje sam hypervisor, obsługujący te maszyny.

W praktyce okazuje się, że warto instalować Integration Services by trochę odciążyć hypervisora. Niestety dopóki nie jest dostępny ten pakiet dla linuksów, nie zalecałbym ich instalacji pod Hyper-V dlatego że...

Instalując Windows Server 2003 lub dowolną dystrybucję linuksa, pierwszy problem na jaki natrafimy to brak karty sieciowej. A system serwerowy bez karty sieciowej jest z reguły mało użyteczny. O ile dla Win2k3 możemy zainstalować Integration Services, uzyskując dzięki temu naszą kartę sieciową, to dla linuksów ten pakiet nie jest jeszcze dostępny publicznie. Z tego względu chcąc korzystać z sieci pod systemami innymi niż Windows, przed instalacją musimy dodać maszynie wirtualnej nowe urządzenie - Legancy Networ Adapter.

Dzięki temu nowemu urządzeniu maszyna wirtualna będzie w stanie nawiązać kontakt z siecią. Niestety pociąga to za sobą inny bardzo kluczowy element - wydajność. W obecnej wersji beta Hyper-V, nie jest to wydajne rozwiązanie, ponieważ duża ilość pakietów znacząco obciąża procesor komputera. A jeżeli hypervisor zacznie obciążać procesor, mniej zostanie go dla maszyn wirtualnych, przez co w najgorszym przypadku pogorszy się znacząco wydajność całego środowiska.

Tak więc dopóki nie wyjdzie Integration Services dla linuksa, nie polecam instalacji.

Co do monitorowania systemu za pomocą perfmona, to możemy sobie rozwinąć długą listę liczników, na której powinniśmy znaleźć to co chcemy monitorować. I pora zapomnieć o Task managerze ;)