none
velikost VHDX

    Dotaz

  • Dobrý den,

    narazil jsem na problém u virtuálního serveru na platformě Hyper-V. Server má 2 VHDX dynamicky se zvětšující. 

    1. disk - instalace OS velikost maxsize 150GB, využití 62GB - velikost exportu 62GB

    2. disk - záloha maxsize 100GB, využití 20GB - velikost exportu 100GB (tento disk byl v minulosti zaplněn na maximální kapacitu)

    Zkoušel jsem resize-vhd, ale minimum size je stejně velká jako maxsize. Taky jsem zkoušel na samotny VHDX ve spuštěném virtuále defrag, shrink 80GB, pote formát volného místa a zase ho spojit. Velikost exportu se nezměnila. 

    Můj dotaz je, existuje nějaká možnost jak tento VHDX zmenšit na skutečnou velikost dat? Je velmi zdlouhavé exportovat navíc "prázdného místa". 

    Děkuji za odpovědi nebo nápady.

    Ondřej

    středa 5. září 2018 6:21

Odpovědi

  • tak jsem to vyřešil, přikládám řešení:

    1. vymazat všechny kontrolní body v konzoli Hyper V

    Get-VM | Get-VMSnapshot | Where-Object {$_.CreationTime -lt (Get-Date).AddDays(-0)} | Remove-VMSnapshot

    2. defragmentovat disk v prostředí VM ( v mém případě H:)

    3. odpojit disk ve správci tech. hyper V (backup.vhdx = disk H: ve VM)

    4. v konzoli hyper V příkaz

    PS: Convert-VHD –Path c:\test\backup.vhdx –DestinationPath c:\test\back_up.vhdx -VHDType Dynamic

    5. ve správci tech. hyper V připojit nový disk - back_up.vhdx (VHDX se vyrobí ve velikosti, kterou mají reálně soubory na disku, pokud se po připojení nenamapuje, přidejte ve správci disku) 

    Děkuji za Vaše náměty

    Ondřej

    • Označen jako odpověď Ondřej AT středa 5. září 2018 11:21
    středa 5. září 2018 11:21

Všechny reakce

  • Potřebuješ mít využité místo souvislé, což ti právě ta defragmentace ukáže, že nejspíš není. Potřebuješ s tím tedy "něco" udělat. Není ale asi žádná konkrétní rada, jak všechno využité místo přesunout na začátek toho disku. Zkus defragmentaci klidně opakovaně a postupně se snažit od disku oddělit co největší část na nevyužitý prostor (shrink). Mohlo by to o kus ještě jít stylem defragmentace - oddělit co největší část - defragmentace a tak pořád dokola.

    Nicméně otázkou je, proč vůbec používáš dynamické disky. Pro produkci to není doporučené a pokud ty VHDX soubory neleží na SSD, bude to mít i poměrně výrazný dopad na výkon. Prostor se totiž alokuje dynamicky, tedy po částech. Na fyzickém disku se tedy obsazené části alokují chaoticky a vzniká tedy velmi vysoká fragmentace, která na plotnových (rotačních) discích má velmi negativní dopad na výkon, protože hlavička disku musí "kmitat" mezi různými částmi disku, což negativně ovlivňuje přístupovou dobu a přenosovou rychlost. Pokud máš disk fixní velikosti, celá velikost disku se alokuje hned při jeho vytváření (proto to trvá tak dlouho) a tudíž v optimálním případě je celá velikost vhdx souboru alokována v jednom kuse na fyzickém disku. Pokud máš SSD, tak to takový problém není.

    středa 5. září 2018 7:07
  • disky používám SSD a dynamicky se zvětšující disk používám proto, že když disk vyrobím s příznakem -fixed, vyexportuje mi hyperV celou velikost vhdx, tedy i prázdné místo. 

    Odhledně defragmentace, tu jsem provedl, data mám seřazeny na začátku disku, shrink dokážu udělat až 80GB ze 100GB. 

    Můj problém je nemožnost zmenšit samotnou velikost vhdx. Ideálně bych potřeboval nějak nastavit tomuto vhdx minimum size ručně, abych mohl udělat resize-vhd z konzole hyperV.

    středa 5. září 2018 7:21
  • Jaky OS? Detekuje guest disk jako thin provisioned?

    MP


    středa 5. září 2018 8:24
    Moderátor
  • tak jsem to vyřešil, přikládám řešení:

    1. vymazat všechny kontrolní body v konzoli Hyper V

    Get-VM | Get-VMSnapshot | Where-Object {$_.CreationTime -lt (Get-Date).AddDays(-0)} | Remove-VMSnapshot

    2. defragmentovat disk v prostředí VM ( v mém případě H:)

    3. odpojit disk ve správci tech. hyper V (backup.vhdx = disk H: ve VM)

    4. v konzoli hyper V příkaz

    PS: Convert-VHD –Path c:\test\backup.vhdx –DestinationPath c:\test\back_up.vhdx -VHDType Dynamic

    5. ve správci tech. hyper V připojit nový disk - back_up.vhdx (VHDX se vyrobí ve velikosti, kterou mají reálně soubory na disku, pokud se po připojení nenamapuje, přidejte ve správci disku) 

    Děkuji za Vaše náměty

    Ondřej

    • Označen jako odpověď Ondřej AT středa 5. září 2018 11:21
    středa 5. září 2018 11:21