Juin 302022
 

Trouver le chemin du disque

Identifier les partitions existantes et la place libre

partedUtil getptbl /vmfs/devices/disks/t10.ATA_____HGST_HTS721010A9E630__________________________JR10006PHDWJHE

gpt
121601 255 63 1953525168
1 64      204863   C12A7328F81F11D2BA4B00A0C93EC93B systemPartition 128
5 208896  1232895  EBD0A0A2B9E5443387C068B6B72699C7 linuxNative 0
6 1234944 2258943  EBD0A0A2B9E5443387C068B6B72699C7 linuxNative 0
7 2260992 15470591 4EB2EA3978554790A79EFAE495E21F8D vmfsl 0
  • Je peux créer à partir de la partition 8
  • Je peux prendre le dernier block utilisé (15470591) +1 (block suivant) +2048(taille de block) = 15472640
  • Mon disque a une taille de (1953525168) – les blocks précédents (15472640) = 1938052528

Trouver les identifiants de partitions

partedUtil showGuids
 Partition Type       GUID
 vmfs                 AA31E02A400F11DB9590000C2911D1B8
 vmkDiagnostic        9D27538040AD11DBBF97000C2911D1B8
 vsan                 381CFCCC728811E092EE000C2911D0B2
 virsto               77719A0CA4A011E3A47E000C29745A24
 VMware Reserved      9198EFFC31C011DB8F78000C2911D1B8
 Basic Data           EBD0A0A2B9E5443387C068B6B72699C7
 Linux Swap           0657FD6DA4AB43C484E50933C84B4F4F
 Linux Lvm            E6D6D379F50744C2A23C238F2A3DF928
 Linux Raid           A19D880F05FC4D3BA006743F0F84911E
 Efi System           C12A7328F81F11D2BA4B00A0C93EC93B
 Microsoft Reserved   E3C9E3160B5C4DB8817DF92DF00215AE
 Unused Entry         00000000000000000000000000000000

Ajouter une partition

partedUtil add /vmfs/devices/disks/t10.ATA_____HGST_HTS721010A9E630__________________________JR10006PHDWJHE gpt « 8 15472640 1938052528 AA31E02A400F11DB9590000C2911D1B8 0″

partedutil add <chemin du disque> <partition type> <partition numéro> <Secteur de début> <secteur de fin> <type de partition> 0 (je ne sais pas a quoi sert le zéro)

La formater

vmkfstools -C  vmfs6 -S « LOCAL Datastore » /vmfs/devices/disks/t10.ATA_____HGST_HTS721010A9E630__________________________JR10006PHDWJHE:8

-C ‘type de formatage’  -S ‘nom du datastore’  <chemin du disque : numéro de partition>

Sep 152016
 

Pré-requis :

Un share réseau sur lequel l’objet COMPUTER de la machine VEEAM a les droits en écriture.
Le soft ignore les paramètres de credentials créés pour l’occasion, alors, autant s’en passer complètement 🙂
Le script doit être lancé en tant qu’administrateur !!

J’ai préféré créer un script qui fait tout plutôt que de faire de la config dans l’application et dans le script.

Le script :

# Author: Vladimir Eremin
# Created Date: 3/24/2015
# http://forums.veeam.com/member31097.html
#
# Adapted by Myself
# Must be run as administrator !
# backup everything except VMs defined

##################################################################
#                   User Defined Variables
##################################################################

$ExceptionVMNames = @('DSVA-VM01','VM-VEEAM-01')           # Theses VMs will NOT be backuped.
$HostName = "ESXNAME01"
$Directory = "\\NAS01.DOMAIN.COM\VEEAM"
$CompressionLevel = "5"              # Desired compression level (Optional; Possible values: 0 - None, 4 - Dedupe-friendly, 5 - Optimal, 6 - High, 9 - Extreme)
$EnableQuiescence = $True            # Quiesce VM when taking snapshot (Optional; VMware Tools are required; Possible values: $True/$False)
$Retention = "In3days"               # Possible values: Never , Tonight, TomorrowNight, In3days, In1Week, In2Weeks, In1Month)

$EnableNotification = $True          # Send an eMail about the backup when completed.
$SMTPServer = "smtp.domain.com"
$EmailFrom = "veeam.site1@domain.com"
$EmailTo = "myself@domain.com"
$EmailSubject = "VM backup of SITE 1"




# Pour la création des objets nécessaires au backup. Il n'est pas nécessaire de les créer dans l'interface graphique.
$ESX_name='ESXNAME01.domain.com'
$ESX_User='root'
$ESX_password='MemePasEnReve:-)'
$NAS_name='NAS01'

# Get-Command -Module VeeamPSSnapIn           # pour lister les commandes possibles...

##################################################################
#                   End User Defined Variables
##################################################################

Add-PSSnapin VeeamPSSnapin

Connect-VBRServer -server localhost

if ( Find-VBRViEntity -name $ESX_name -HostsAndClusters ) {
  Write-Host "ESX exist" -foregroundcolor GREEN
} else {
  Write-Host "ESX does not exist. Create it" -foregroundcolor CYAN
  Add-VBRESXi -Name $ESX_name -User $ESX_User -Password $ESX_password
}

$Server = Get-VBRServer -name $HostName

# Création du repository.
# Attention, les droits NTFS du share doivent autoriser l'objet COMPUTER a modifier les fichiers sur le NAS.
if (Get-VBRBackupRepository -name $NAS_name ) {
  Write-Host "Repository exist" -foregroundcolor GREEN
} else {
  Write-Host "Repository does not exist. Create it"  -foregroundcolor CYAN
  Add-VBRBackupRepository -Name $NAS_name -Type CifsShare -RotatedDrive -Description "Synology NAS" -Server $server -Folder $Directory
}

# Creation du proxy pour backup local
if ( ( Get-VBRViProxy | measure).count -ne 1  ) {
  Write-Host "Proxy does not exist. Create it" -foregroundcolor CYAN
  Get-VBRServer | ? { $_.type -eq "Local" } | Add-VBRViProxy -Description "Local Backup Proxy" -MaxTasks 2
} else {
  Write-Host "Proxy exist"  -foregroundcolor GREEN
}

#################### Main program ################

$MesssagyBody = @()

foreach ($VM in Find-VBRViEntity -Server $Server | ? {$_.type -eq "vm" -and $_.name -notin $ExceptionVMNames -and $_.name -notlike "*_clone_*" }){

  Write-Host "Starting backup of " $VM.name -nonewline -foregroundcolor cyan
  $ZIPSession = Start-VBRZip -Entity $VM -Folder $Directory -Compression $CompressionLevel -DisableQuiesce:(!$EnableQuiescence) -AutoDelete $Retention
  if ( $ZIPSession.Result -eq 'Failed' ) {
    Write-Host ". statut : " $ZIPSession.Result -foregroundcolor RED
  } else {
    Write-Host ". statut : " $ZIPSession.Result -foregroundcolor GREEN
  }


  If ($EnableNotification){
    $TaskSessions = $ZIPSession.GetTaskSessions().logger.getlog().updatedrecords
    $FailedSessions =  $TaskSessions | where {$_.status -ne "ESucceeded"}

    if ($FailedSessions -ne $Null){
      $MesssagyBody = $MesssagyBody + ($ZIPSession | Select-Object @{n="Name";e={($_.name).Substring(0, $_.name.LastIndexOf("("))}} ,@{n="Start Time";e={$_.CreationTime}},@{n="End Time";e={$_.EndTime}},Result,@{n="Details";e={$FailedSessions.Title}})
    }Else{
      $MesssagyBody = $MesssagyBody + ($ZIPSession | Select-Object @{n="Name";e={($_.name).Substring(0, $_.name.LastIndexOf("("))}} ,@{n="Start Time";e={$_.CreationTime}},@{n="End Time";e={$_.EndTime}},Result,@{n="Details";e={($TaskSessions | sort creationtime -Descending | select -first 1).Title}})
    }
  }
}

If ($EnableNotification){
  #                   Email formatting
  $style = "<style>BODY{font-family: Arial; font-size: 10pt;}"
  $style+=   "TABLE{border: 1px solid black; border-collapse: collapse;}"
  $style+=   "TH{border: 1px solid black; background: #ddddff; padding: 5px; }"
  $style+=   "TD{border: 1px solid black; padding: 5px; }"
  $style+= "</style>"

  $Message = New-Object System.Net.Mail.MailMessage $EmailFrom, $EmailTo
  $Message.Subject = $EmailSubject
  $Message.IsBodyHTML = $True
  $message.Body = $MesssagyBody | ConvertTo-Html -head $style | Out-String
  $SMTP = New-Object Net.Mail.SmtpClient($SMTPServer)
  $SMTP.Send($Message)
}
La commande pour la tache planifiée :
schtasks /create /SC daily /TN Daily_VM_backup /TR "C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe -file C:\Script\Veeam_Zip_SITE1.ps1" /ST 23:00 /RU system
Et voila…
Fév 082015
 

Comme certains l’ignorent peut ?tre, mais les performances sont fortement impact?es en cas de snapshot. Lorsque l’hyperviseur doit rechercher le contenu d’un secteur disque, il va voir dans le? snapshot courant s’il le trouve. S’il ne le trouve pas, alors, il va voir dans le snapshot pr?c?dent, et ainsi de suite jusqu’? revenir au fichier VMDK original? (s’il doit revenir jusque l?, sinon, il s’arr?te d?s qu’il a trouv? ce qu’il cherche.. Ca peux se traduire par un volume de donn?e fort important pour pas grand chose…

Capture

Voici un exemple sous VMware Workstation d’un exemple de copie de fichiers Dans ce cas pr?cis, les donn?es sont sur le snapshot, peu d’impact sur le VMDK original except? les binaires pour la copie elle-m?me et des infos de l’OS sur les secteurs libres… Par contre, si je copie un fichier qui n’?tait pas dans le snapshot, l’impact est diff?rent:

Capture2

Bref… Evitez les snapshot autant que possible.. Et surtout, les snapshot en cascade a chaque click (Hein Olivier 😉 ) Le Olivier en question avait une VM sur disque USB3 avec des performances catastrophiques. Effectivement, une bonne dizaine de snapshot, ca impacte FORTEMENT. (Je ne vous raconte pas les temps de consolidation qui a ?t? n?cessaire) A+ les jeunes !

Fév 212013
 

# Créer une VM linux (Debian de préférence) avec 3 disques :
* 50Go <- OS
* 100Go <- NFS
* 100Go <- ISCSI

#VMWare Tools

apt-get install build-essential
apt-get install iscsitarget iscsitarget-dkms nfs-kernel-server

# NFS

cfdisk /dev/sdb
mke2fs /dev/sdb1
mkdir /nfs
echo /dev/sdb1 /nfs auto rw,user,auto 0 0 >> /etc/fstab
mount /nfs
echo /nfs *\(rw,sync,no_subtree_check\) >> /etc/exports
exportfs -a

#ISCSI

cfdisk /dev/sdc
mke2fs /dev/sdc1

mkdir /iscsi
echo /dev/sdc1 /iscsi auto rw,user,auto 0 0 >> /etc/fstab
mount /iscsi

echo ISCSITARGET_ENABLE=true>/etc/default/iscsitarget
echo Target iqn.2011-04.Stockage.SNAKENET:partage1 >>/etc/iet/ietd.conf
echo Lun 0 Path=/iscsi/partage0,Type=fileio >>/etc/iet/ietd.conf
echo Lun 1 Path=/iscsi/partage1,Type=fileio >>/etc/iet/ietd.conf

# Lun 4Go
dd if=/dev/zero of=/iscsi/partage0 seek=1M bs=4096 count=1
# Lun 10Go
dd if=/dev/zero of=/iscsi/partage1 count=0 obs=1 seek=10G

# expand lun of 1000Mo
dd oflag=append conv=notrunc if=/dev/zero of=/iscsi/partage0 bs=1MB count=1000

/etc/init.d/iscsitarget restart

That’s it 🙂

Sep 152012
 

Pour info, le VAAI est une API qui permet d’am?liorer sensiblement les performances entre un ESX et son SAN.
Pour plus d’infos –>; google

Comment voir si c’est activ?? Demandez ? votre ESX 🙂

Activer SSH

Dans VCenter, cliquez sur votre HOST, allez dans l’onglet Configuration, et choisissez la rubrique « Security Profiles »
Au niveau des « services » allez dans « propri?t?s »
Choisissez SSH, options, et cliquez sur « start » (au prochain red?marrage, ce sera d?sactiv?)

Interrogez votre ESX

Connectez vous en SSH (putty.exe) sur l’adresse IP de votre ESX
Authentifiez-vous (login : root et mot de passe de l’ESX)
Entrez la commande suivante :
esxcli storage core device vaai status get
Si cette commande ne vous renvois pas grand chose, v?rifiez dans VCenter que votre HOST vois tous ses datastore (ou au moins qu’il voit son SAN (ou NAS))

R?ponse du SAN

mpx.vmhba1:C0:T0:L0 <;-- Mon CDROM VAAI Plugin Name: ATS Status: unsupported Clone Status: unsupported Zero Status: unsupported Delete Status: unsupported mpx.vmhba32:C0:T0:L0 <;-- Mon Disque local VAAI Plugin Name: ATS Status: unsupported Clone Status: unsupported Zero Status: unsupported Delete Status: unsupported naa.60014053b36838dd4538d373fdbcf3d0 VAAI Plugin Name: ATS Status: supported Clone Status: unsupported Zero Status: supported
Delete Status: unsupported

t10.SYNOLOGYRAMDISK2DDR:1234567890:0_000
VAAI Plugin Name:
ATS Status: unsupported
Clone Status: unsupported
Zero Status: supported
Delete Status: unsupported

Dans ce cas-ci, on voit bien que mon NAS ne supporte que le Zero Status (bah! c’est d?j? ca!, il a 4 ans mon NAS)

Août 082012
 

Bon, vous voulez jouer avec VMWare VMotion, mais vous avez besoin d’un datastore partag? entre vos serveurs ESX(i), et vous vous tournez vers NFS pour ?a… (pas cher, toussa,…)

Si vous d?sirez mettre en place un serveur iSCSI, attendez ma prochaine parution..

VMWare ? besoin exclusivement de NFSv3 over TCP.

installez Linux de base
apt-get install nfs-kernel-server
Cr?ez/utilisez un filesystem d?di? (dans mon cas, je cr?e un r?pertoire ? la racine (c’est du lab, hein!)
mkdir /nfs
Indiquez ? NFS ce que vous autorisez ? partager: /etc/exports
/nfs *(rw,sync,no_subtree_check)
–> Dans ce cas-ci, je partage le dossier /nfs avec la plan?te enti?re.
V?rifiez la config:
exportfs -a

Voil?, votre « SAN » est cr??. Il faut maintenant l’attacher ? votre/vos ESX(i).
Tout se passe dans la partie
Page d'accueil-->Inventaire-->H?tes et clusters Onglet: Configuration
Pr?-requis: un « vmKernel » dans le m?me r?seau que le serveur NFS:

    Mat?riel–> Mise en r?seau
    Ajouter gestion r?seau
    VMKernel
    Choisissez la bonne carte r?seau/vSwitch (?a, c’est ? vous de savoir…)
    Donnez lui un nom parlant (dans mon cas, NFS). Adaptez pour les vLans, mais ne cochez pas d’autres fonctionnalit?s, sauf si vous en avez/aurez besoin…
    Donnez lui une adresse IP. (c’est cette adresse qu’il faut indiquer ? la place de l’asterisque dans le fichier /etc/exports

Maintenant que vous avez un vmKernel, utilisez-le.

    Mat?riel–> stockage
    Ajouter un stockage
    Syst?me de fichiers r?seau

      serveur: indiquez le nom/ip fixe de votre serveur NFS
      Dossier: indiquez le dossier partag?(le nom local du serveur NFS)

Voil?, vous avez normalement un datastore sur NFS!