50٪ تخفیف روی تمام دوره‌ها!
پایان تخفیف تا:
مشاهده دوره‌ها
0

حذف vm و آزاد نشدن فضا از SAN

چرا وقتی یک vmی که دیگه نیاز بهش نیست رو delete from disk میکنی،فضایی که مثلا اگه 60GB بوده به فضای freeمربوط به SAN Storage اضافه نمیشه؟

SAN Storage : HP P2000

پرسیده شده در 1393/03/14 توسط

8 پاسخ

0

من عذرخواهی می کنم منظورم از Browse کردن SAN Storage در واقع Datastore ای بود که به ESXi متصل شده ، با توجه به ساختار فایل سیستم VMFS شما نمیتونید داخل Storage رو باز کنید البته تا جاییکه من میدونم ، آیا فضای خالی توی Datastore نمایش داده میشه و فقط در Storage این مشکل رو دارید ؟ از جهت دیگه الان چه مدت زمانی هست که اینکار رو انجام دادید و نتیجه رو ندیدید ؟

پاسخ در 1393/03/14 توسط
0

مهندس نصیری عزیز این اسکریپت رو در کجا باید اجرا کنیم ؟

پاسخ در 1393/03/14 توسط
0

مشکل من همینه که فضای خالی در data-store نشون داده نمیشه...

امکان این هست که بشه مثلا فایل مربوط به vm-X که مربوط به سرور x هست رو در data-store دید و بشه از اونجا هم حذفش کرد؟

قبلا اصن به فکر این نبودم که که بتونم داخل و جزئیات SAN رو ببینم،فقط لام بندی و Raid کردن رو انجام دادم و Esx هم که اتومات خودش SAN رو تشخیص میده و ارتباط رو برقرار کردم

اما الان با مشکل فضا مواجهه شدم که میخوام فضا خالی کنم که مجبور به حذف یکی از سرورهایی که لازم نداشتم،کردم ولی دیدم فضایی از SAN آزاد نشده!!!!!

پاسخ در 1393/03/14 توسط
0

ببینید این مشکل ممکنه به دلیل Thin Provision بودن یا Migrate شدن VM شما به وجود اومده باشه و در کنارش مشکلات هماهنگی با LUN های Storage رو داشته باشید ، اول باید بررسی کنید که مشکلی در این میون وجود نداره ، ترجیجا به لینک زیر مراجعه کنید ، دستوراتی که داده شده رو اجرا کنید تا متوجه بشید که فضای خالی ایجاد شده یا خیر بعد از اون می تونیم بررسی های بیشتری انجام بدیم :

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2014849
پاسخ در 1393/03/14 توسط
1

با ssh به سرور esxi یا vcenterمتصل بشید و بعد اجرا کنید.

پاسخ در 1393/03/15 توسط
1

SAN Storage رو Browse کردید ببینید فایل های VM به کلی حذف شدند یا خیر ؟ مطمئن هستید Delete From Disk رو انتخاب کردید ؟ این مورد برای من پیش اومده اما بعدا متوجه شدم که Delete From Inventory رو انتخاب کرده بودم و به همین دلیل فقط از لیست پاک شده بود ، وارد SAN Storage بشید و مطمئن بشید فایل های VM واقعا حذف شدن.با استفاده از اسکریپت زیر شما می تونید Orphaned VM های توی Datastore ها رو پیدا کنید :

function Remove-OrphanedData {
<#
.SYNOPSIS   Remove orphaned folders and VMDK files
.DESCRIPTION   The function searches orphaned folders and VMDK files
   on one or more datastores and reports its findings.
   Optionally the function removes  the orphaned folders   and VMDK files
.NOTES   Author:  Luc Dekens
.PARAMETER Datastore
   One or more datastores.
   The default is to investigate all shared VMFS datastores
.PARAMETER Delete
   A switch that indicates if you want to remove the folders
   and VMDK files
.EXAMPLE
   PS> Remove-OrphanedData -Datastore ds1
.EXAMPLE
  PS> Get-Datastore ds* | Remove-OrphanedData
.EXAMPLE
  PS> Remove-OrphanedData -Datastore $ds -Delete
#>
 
  [CmdletBinding(SupportsShouldProcess=$true)]
 
  param(
  [parameter(Mandatory=$true,ValueFromPipeline=$true)]
  [PSObject[]]$Datastore,
  [switch]$Delete
  )
 
  begin{
    $fldList = @{}
    $hdList = @{}
 
    $fileMgr = Get-View FileManager
  }
 
  process{
    foreach($ds in $Datastore){
      if($ds.GetType().Name -eq "String"){
        $ds = Get-Datastore -Name $ds
      }
      if($ds.Type -eq "VMFS" -and $ds.ExtensionData.Summary.MultipleHostAccess){
        Get-VM -Datastore $ds | %{
          $_.Extensiondata.LayoutEx.File | where{"diskDescriptor","diskExtent" -contains $_.Type} | %{
            $fldList[$_.Name.Split('/')[0]] = $_.Name
            $hdList[$_.Name] = $_.Name
          }
        }
        Get-Template | where {$_.DatastoreIdList -contains $ds.Id} | %{
          $_.Extensiondata.LayoutEx.File | where{"diskDescriptor","diskExtent" -contains $_.Type} | %{
            $fldList[$_.Name.Split('/')[0]] = $_.Name
            $hdList[$_.Name] = $_.Name
          }
        }
 
        $dc = $ds.Datacenter.Extensiondata
 
        $flags = New-Object VMware.Vim.FileQueryFlags
        $flags.FileSize = $true
        $flags.FileType = $true
 
        $disk = New-Object VMware.Vim.VmDiskFileQuery
        $disk.details = New-Object VMware.Vim.VmDiskFileQueryFlags
        $disk.details.capacityKb = $true
        $disk.details.diskExtents = $true
        $disk.details.diskType = $true
        $disk.details.thin = $true
 
        $searchSpec = New-Object VMware.Vim.HostDatastoreBrowserSearchSpec
        $searchSpec.details = $flags
        $searchSpec.Query += $disk
        $searchSpec.sortFoldersFirst = $true
 
        $dsBrowser = Get-View $ds.ExtensionData.browser
        $rootPath = "[" + $ds.Name + "]"
        $searchResult = $dsBrowser.SearchDatastoreSubFolders($rootPath, $searchSpec)
        foreach($folder in $searchResult){
          if($fldList.ContainsKey($folder.FolderPath.TrimEnd('/'))){
            foreach ($file in $folder.File){
              if(!$hdList.ContainsKey($folder.FolderPath + $file.Path)){
                New-Object PSObject -Property @{
                  Folder = $folder.FolderPath
                  Name = $file.Path
                  Size = $file.FileSize
                  CapacityKB = $file.CapacityKb
                  Thin = $file.Thin
                  Extents = [string]::Join(',',($file.DiskExtents))
                }
                if($Delete){
                  If ($PSCmdlet.ShouldProcess(($folder.FolderPath + " " + $file.Path),"Remove VMDK")){
                    $dsBrowser.DeleteFile($folder.FolderPath + $file.Path)
                  }
                }
              }
            }
          }
          elseif($folder.File | where {"cos.vmdk","esxconsole.vmdk" -notcontains $_.Path}){
            $folder.File | %{
              New-Object PSObject -Property @{
                Folder = $folder.FolderPath
                Name = $_.Path
                Size = $_.FileSize
                CapacityKB = $_.CapacityKB
                Thin = $_.Thin
                Extents = [String]::Join(',',($_.DiskExtents))
              }
            }
            if($Delete){
              if($folder.FolderPath -eq $rootPath){
                $folder.File | %{
                  If ($PSCmdlet.ShouldProcess(($folder.FolderPath + " " + $_.Path),"Remove VMDK")){
                    $dsBrowser.DeleteFile($folder.FolderPath + $_.Path)
                  }
                }
              }
              else{
                If ($PSCmdlet.ShouldProcess($folder.FolderPath,"Remove Folder")){
                  $fileMgr.DeleteDatastoreFile($folder.FolderPath,$dc.MoRef)
                }
              }
            }
          }
        }
      }
    }
  }
}
پاسخ در 1393/03/14 توسط
0

از لحاظ مطمئن بودن که مطمئن هستم...

اما نمیدونم چرا حذف نشده...

SAN رو هم که browse کنم تنها لام ها رو می بینم.

جایی هست که مشخص باشه بری و محتویات دسته بندی شده vmهایی رو که ساختی در SAN دید؟

از لحاظ مطمئن بودن که مطمئن هستم...
اما نمیدونم چرا حذف نشده...
SAN رو هم که browse کنم تنها لام ها رو می بینم.
جایی هست که مشخص باشه بری و محتویات دسته بندی شده vmهایی رو که ساختی در SAN دید؟
||http://network.tosinso.com/files/get/5db5456d-41c8-4f70-96bf-30df1b22b734||
پاسخ در 1393/03/14 توسط
1

اینکه فضای اون vm به چه صورات بوده، مطمئن هستم thin تعریف کردم...چون یه جورایی قاعده درست کار اینه که type فضای اختصاصی به هر vm باید به صورت thin باشه مگر در حالتی که مطمئن هستی دقیقا به همان اندازه قرار است استفاده شود یعنی بلوک استفاده دقیقا مشخصه،

مثلا فضایی که برای file server در نظر گرفتم از نوع thick بوده...

ممنون از راهنماییتون

ببینم چطور پیش میره،به نتیجه میرسم یا نه...به قولی مشکله اما امکان پذیر!!!

پاسخ در 1393/03/14 توسط

پاسخ شما