Blog Marcina Bojko

Linux,Windows,serwer, i tak dalej ;)

Posts Tagged ‘disaster recovery

Compacting Virtual Disks in System Center Virtual Machine Manager 2012 R2 or Hyper-V 2012 R2

As we all know – disk space isn’t free. If you allocate disk space to your virtual machine, you always want to allocate proper, well-balanced size to shorten future downtimes. But what is proper and balanced you ask?  There is no short answer to this, but if you’re  IT person, you always will try to allocate more than is needed right at the moment.  The decision is : should I use static or dynamic disks?

For me, there is no really need to use static disks anymore as there is no real speed difference. So, the real pro using dynamic disk is their smaller size.

In production environment, using Microsoft’s hypervisor, we can expect our VM to grow over time. During the nature of virtual machines and virtual disks, the real data machine uses are not the same numbers as virtual disk sizes. It is happening due to hypervisor behaviour – deleting all data from OS in virtual machine is no more than throwing away and index card from your book. The written data are still there, so there is no easy, automated way to compact a virtual disk.

Hypervisor however, tries to allocate in a first place, blocks marked as used. So the real expanding is happening when you’re constantly changing your data, without deleting them first. The great example is with databases, log and temporary trash disks and just plain and simple oversizing. I’ve had a case when relativly small machine (20 GB CentOS with a 600 GB VD) just grew over few days filling whole 600 GB of data because of logs set to DEBUG.

So what will be the cons and of virtual disk growing overtime?

  • obviously, more space allocated at expensive storage for VMs
  • more obviously, when you’re using any kind of backup software, you’re forced to write and store in multiple copies the data you really doesn’t need
  • CBT (Change Block Tracking) Table is bigger to process, with every move
  • more network traffic with every backup job you have
  • live ‚shared nothing’ migration times grows just out of proportions. If you have a small machine with 20GB data on 600 GB sized disk, you will have to transfer this whole fatso over you network to other machine. Even with compression set at live migration, it is just really unwanted.

So what can we do? We can just zero the data you’re not using and Hyper-v cmdlets  will take the rest.

You have to plan downtime for the machine, but according to my tests, zeroing machines with 600 GB took 15 to 30 minutes. With smaller sizes it is just matter of single minutes.

Before you go:
– plan your downtime, compacting should not to be interrupted
– take extra caution. Zeroing important data or uneeded data it’s just a matter of mistake.
– delete all snapshots/checkpoints
– make sure you converted VHD to VHDX (optional)
– make sure your disk is set as dynamic disk
– make sure you have enough room for compacting or resizing. Remember – if you have 600 GB virtual disk, during this process it may grow to this size.
– remember that compacting deletes CBT table for backup software – next backup will be a Full Backup.

The most usable zeroing ways I found was:

Offline methods

Cons
– longer downtime
Pros
– more accurate (no more background write)
– faster (no more background write)
– smaller risk of processes failure due to ‚out of space’ event

  • zerofree for Linux ext2/ext3/ext4 disks
  • ntfswipe for Windows based disks
  • dd for both Linux and Windows based disks or exotic fs (btrfs/xfs)

Online methods
Cons
– less accurate (background write  is still happening)
– machines became slower or unresponsible
– slower process
– risk of applications failing due to ‚out of space’ events
Pros
– smaller downtime

– SDelete or CCleaner for Windows based disks
– dd for Linux based disks

 

Phase I – Zeroing Offline

Offline zeroing (done with System Rescue CD 4.x)

  • Delete all uneeded data (logs, temps, bigfiles, dowloads, caches)
  • Umount all ext2/3/4/ntfs volumes
  • for NTFS volume: ntfswipe -av /dev/volume_name
  • for ext2/3/4 volume: zerofree -v /dev/volume-name
  • for LVM: vgchange -a y;zerofree -v /dev/mapper/volume_name
Zeroing swap space:
# swapoff -a

# free
total used free shared buffers cached
Mem: 8056340 2643132 5413208 155072 606916 914796
-/+ buffers/cache: 1121420 6934920
Swap: 0 0 0

# blkid |grep swap
/dev/sdb2: UUID="adad0488-3b67-4444-b792-6a1a775b8821" TYPE="swap"
# dd if=/dev/zero|pv -treb|dd of=/dev/sdb2 bs=8192
dd: error writing ‘/dev/sdb2’: No space left on device
1,91GB 0:01:04 [30,3MB/s]
249981+4 records in
249980+4 records out
2047868928 bytes (2,0 GB) copied, 67,931 s, 30,1 MB/s

#mkswap /dev/sdb2 -U "adad0488-3b67-4444-b792-6a1a775b8821"
Setting up swapspace version 1, size = 1999868 KiB
no label, UUID=adad0488-3b67-4444-b792-6a1a775b8821
# swapon -a

# free
 total used free shared buffers cached
Mem: 8056340 3309648 4746692 159844 1112232 919708
-/+ buffers/cache: 1277708 6778632
Swap: 1999868 0 1999868

Phase I – Online zeroing

1. Delete all uneeded data (logs, temps, bigfiles, dowloads, caches)

for Windows machine
sdelete -z letter:

Linux machine
#dd if=/dev/zero|pv -treb|dd of=/file.zero bs=4096;sync;sync;rm -rfv /file.zero;sync

Phase II – Compacting

1. Shutdown the machine

For System Center VMM 2012 R1/R2

Workspace 1_107
For Hyper-V powershell

Optimize-VHD -Path path_to_vhdx_file.vhdx -Mode Full

 

Workspace 1_108
——-
System Rescue CD – http://www.sysresccd.org/Download
SDelete – http://technet.microsoft.com/en-us/sysinternals/bb897443.aspx
CCleaner Portable – https://www.piriform.com/ccleaner/builds
zerofree – http://manned.org/zerofree/00be91ab

Written by marcinbojko

Sierpień 3, 2014 at 13:10

Cykl artykułów na blogu AVG – Co musisz wiedzieć o backupie danych? Część 3

Written by marcinbojko

Lipiec 2, 2013 at 20:36

Cykl artykułów na blogu AVG – Co musisz wiedzieć o backupie danych? Część 2

Written by marcinbojko

Czerwiec 27, 2013 at 19:03

Cykl artykułów na blogu AVG – zachęcam do przejrzenia. Część I – Co warto wiedzieć o wykonywaniu kopii zapasowych.

Część I – http://blog.avg.pl/?p=2320

Written by marcinbojko

Czerwiec 19, 2013 at 19:52

Box.com a backup/synchronizacja plików.

W poniższym wpisie chciałbym pokazać Wam jak w krótki sposób zamienić sobie usługę box.com w dosyć wydajne archiwum danych (dla klienta Windowsowego)

Ten sam sposób działa także z popularnym Dropboxem (nie testowałem ze Skydrive i GoogleDrive) – zarówno w kliencie dla systemów Windows jak i Linux.

Dlaczego box.com a nie pozostałe wymienione usługi? W zasadzie z bardzo prostej przyczyny – wrodzonego skąpstwa 😉 Otóż udało mi się trafić na Happy Hours w box.com, gdzie zakładając konto i logując się na nie z dowolnego urządzenia z Androidem dostawaliśmy 50GB przestrzeni gratis.

Powtórzę: 50GB GRATIS a nie 2 GB/5GB jak u konkurecji. Wykorzystując więc Dropboxa do synchronizacji plików pomiędzy urządzeniami, mając 50 GB chmury wolne, aż prosi się to o wykorzystanie tej przestrzeni do backupu ważnych plików posiadanych w sporych ilościach. Dla mnie na pewno są to pliki książek, zdjęć i filmów rodzinnych.

Na początek trochę teorii. Klient pod Windows zakłada domyślnie katalog (można to zmienić) w „%userprofile%\documents\my box files” – po ludzku, w katalogu użytkownika, w ‚Moich dokumentach’ pojawia się „My Box Files”. Wszystko co wrzucimy do tego katalogu zostanie zsynchronizowane z chmurą box.com – identycznie jak w przypadku Droboxa. Co jednak w sytuacji gdy pliki te mamy rozsiane na innych volumenach/dyskach i nie zamierzamy tego zmieniać? Wykorzystamy zjawisko (wspólne dla Win/Linux) linków symbolicznych.

Odrobina teorii dla chcących: http://pl.wikipedia.org/wiki/Dowi%C4%85zanie_symboliczne

Co chcemy osiągnąć?

1. W katalogu „%userprofile%\documents\my box files”  pojawią się podkatalogi, które chcemy synchronizować z chmurą.

2. Na dysku systemowym nie ubędzie nam miejsca – nawet jeżeli wykonamy linki do katalogów zbliżonych pojemnością do magicznych 50GB

3. Każda zmiana w katalogach rozsianych po innych dyskach/partycjach zostanie uwzględniona w procesie synchronizacji z box.com (z opcją: pozostawić te skasowane czy też synchronizować zmiany)

boxsync

Jak miałoby to wyglądać u mnie ?

boxsync3

Uruchamiamy ‚CMD’ jako administrator

mklink /D „C:\Users\mbojko\Documents\My Box Files\WinUAE” „L:\WINUAE”

mklink /D „C:\Users\mbojko\Documents\My Box Files\Books” „F:\Media\Books\GoodBooks\Sorted”

mklink /D „C:\Users\mbojko\Documents\My Box Files\Zdjęcia” „E:\Images\Zdjęcia”

mklink /D „C:\Users\mbojko\Documents\My Box Files\Videos” „D:\Video”

Efekt:

łącze symboliczne utworzone dla C:\Users\mbojko\Documents\My Box Files\WinUAE <<===>> L:\WINUAE

łącze symboliczne utworzone dla C:\Users\mbojko\Documents\My Box Files\Books <<===>> F:\Media\Books\GoodBooks\Sorted

łącze symboliczne utworzone dla C:\Users\mbojko\Documents\My Box Files\Zdjęcia <<===>> E:\Images\Zdjęcia

łącze symboliczne utworzone dla C:\Users\mbojko\Documents\My Box Files\Videos <<===>> D:\Video

2013-04-13 19:00 <DIR> .
2013-04-13 19:00 <DIR> ..
2013-04-13 18:59 <SYMLINKD> Books [F:\Media\Books\GoodBooks\Sorted]
2013-04-13 18:45 491 781 Box Sync ReadMe.pdf
2013-04-13 19:00 <SYMLINKD> Video [D:\Video]
2013-04-13 18:58 <SYMLINKD> WinUAE [L:\WINUAE]
2013-04-13 19:00 <SYMLINKD> Zdjęcia [E:\Images\Zdjęcia]

boxsync2

Written by marcinbojko

Kwiecień 20, 2013 at 10:38

DRBL i kolejne pożyteczne narzędzia via PXE

Jak zapewne wiadomo tym, którzy przebrnęli przez poprzednie wpisy o DRBL, system ten dostarcza ciekawy mechanizm umożliwiający dostarczanie kilku pożytecznych narzędzi za pomoca  PXE bezpośrednio do komputera na którym je potrzebujemy. Iż jest to czasem błogosławieństwo chyba nie muszę opowiadać: brak dyskietki, dysku USB, CDROMU, uszkodzenie tychże i tak dalej i tak dalej.

Przykład? Konieczność wykonania akcji ratunkowej/maintenance na badanym systemie – ot klasyczny uszkodzony Windows/Linux do spacyfikowania. Zazwyczaj wykonujemy opcję startu z CD/DVD, czasem klucza USB (bez angażowania dysku twardego), a tu pokażę jak możemy to zrobić łatwiej i przyjemniej: via network. Dzisiaj zajmiemy się dostarczeniem jednego z ciekawszych systemów ratunkowych: System Rescue CD, dostępnego tu: http://www.sysresccd.org

Kilka aksjomatów:

– pokaz przeprowadzam na openSUSE 11.3 z zainstalowanym systemem i prekonfigurowanym DRBL’em w wersji 1.10.31_1

– interfejs dla podsieci DRBL to 172.16.0.1, podsieć 172.16.0.0/24

– obrazy systemów dostarczamy za pomocą http – można to zrealizować poprzez tftp, nfs, nbd – http pozostaje jednak najbardziej uniwersalny dla dodatkowych systemów podpinanych do DRBL’a, jak również stosunkowo najłatwiejszy w konfiguracji.

– zawartość serwera HTTP domyślnie znajduje się w /srv/www/htdocs

– zawartość DRBL/Tftpd domyślnie znajduje się w /tftpboot/nbi_img

– plik konfiguracyjny drbla znajduje się w /tftpboot/nbi_img/pxelinux.cfg/default

– wszystkie operacje wykonujemy jako root/sudo su

Zaczynamy od pobrania ostatniej wersji System Rescue CD – na potrzeby manuala jest to 2.3.1, ale oczywiście powinno działać z wersjami wcześniejszymi i późniejszymi, bez dokonywania zmian innych niż nazewnictwo plików i ich wersje:

# pobieramy i montujemy ISO jako filesystem
wget http://downloads.sourceforge.net/project/systemrescuecd/sysresccd-x86/2.3.1/systemrescuecd-x86-2.3.1.iso
mkdir -p /media/system
mount systemrescuecd-x86-2.3.1.iso /media/system -o loop

# zawartość pliku ISO jest dostępna w /media/system # kopiujemy z System Rescue CD jego kernel i initrd
cp /media/system/isolinux/rescuecd /tftpboot/nbi_img/rescuecd
cp /media/system/isolinux/rescue64 /tftpboot/nbi_img/rescue64
cp /media/system/isolinux/initram.igz /tftpboot/nbi_img/initram.igz.systemrescue

#Kopiujemy plik obrazu systemu do naszego domyślnego serwera http.
cp /media/system/sysrcd.dat /srv/www/htdocs/sysrcd.dat
cp /media/system/sysrcd.md5 /srv/www/htdocs/sysrcd.md5

# sprawdzamy czy mamy uruchomiony serwer http:
chkconfig -l apache2
apache2                   0:off  1:off  2:off  3:on   4:off  5:on   6:off
 
# Uwaga, - krok opcjonalny jeżeli poprzedni krok zwrócił nam same 'off'
yast2 -i apache2
chkconfig --add apache2

# testujemy nasz serwer http
wget http://172.16.0.1/index.html

--2011-10-14 18:04:49--  http://172.16.0.1/index.html
Connecting to 172.16.0.1:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 44 [text/html]
Saving to: `index.html'

100%[=====================================================================================================================================>] 
44          --.-K/s   in 0s      

2011-10-14 18:04:50 (2.19 MB/s) - `index.html' saved [44/44]
# Wygląda na to iż wszystko działa ;) # Robimy kopię ustawień DRBL'a
cp -p /tftpboot/nbi_img/pxelinux.cfg/default /tftpboot/nbi_img/pxelinux.cfg/default.old
# Swoim ulubionym edytorem (gedit/mcedit/vi/ed) dokonujemy edycji pliku: 
/tftpboot/nbi_img/pxelinux.cfg/default

mcedit /tftpboot/nbi_img/pxelinux.cfg/default
# Na końcu pliku dodajemy linie:

label System Rescue CD 2.3.1
#  MENU DEFAULT
#  MENU HIDE
   MENU LABEL System Rescue CD 2.3.1
#  MENU PASSWD
   kernel rescuecd
   append initrd=initram.igz.systemrescue netboot=http://172.16.0.1/sysrcd.dat setkmap=pl 
   nomodeset dostartx
#  TEXT HELP
#  Boot System Rescue CD via network
#  ENDTEXT

label System Rescue CD 2.3.1 64bit (required 400 MB or more)
#  MENU DEFAULT
#  MENU HIDE
   MENU LABEL System Rescue CD 2.3.1 64bit (required 400 MB or more)
#  MENU PASSWD
   kernel rescue64
   append initrd=initram.igz.systemrescue netboot=http://172.16.0.1/sysrcd.dat docache 
   setkmap=pl nomodeset dostartx
#  TEXT HELP
#  Boot System Rescue CD 64bit via network
#  ENDTEXT

I efekt:

W następnym odcinku: GParted, PartedMagic, i Hiren's Boot CD ;)

Written by marcinbojko

Październik 14, 2011 at 19:07

Filmy z wykładu DRBL Kul Lublin

Przezwyciężając lenistwo:

Część I

Część II

Część III

Część IV

Część V

Część VI

Written by marcinbojko

Grudzień 14, 2010 at 16:02

%d blogerów lubi to: