SlideShare a Scribd company logo
Vmbkp: An Online Backup Tool
   for VMware vSphere
          Oct 15, 2010
        HOSHINO Takashi
        Cybozu Labs, Inc.

                               1
What is Vmbkp?
• Backup software for Virtual Machines
  in VMware vSphere environment
   –   Online full/differential/incremental backup
   –   Multi-generation backup management
   –   Efficient archive access with sequential IO and reverse diff.
   –   Command-line I/F for scheduling by Cron




                                                                       2
Supported platform
• VMware vSphere 4
  – vCenter server managing several ESX(i)s
  – Single ESX(i) (not tested)
  – Free ESXi is not supported (snapshot fails)


• Backup server
  – Linux on x86_64 host.
  – CentOS 5.5 64bit is confirmed



                                                  3
Hardware Architecture
                          Control/GetInfo with
                         vSphere Soap Protocol       VMware vSphere
                                                      vCenter Server
         Vmbkp                     LAN
         Server

                                             VMware                  VMware
                                            ESX(i) Host             ESX(i) Host


                                    SAN

                  Data Transfer via SAN
                   with VDDK Protocol

        Backup                               VM             VM             VM
        Storage                            Storage        Storage        Storage

You can use NBD transfer without SAN.                                              4
Commands
• Update:
   – Get and save information of all available VMs
• Backup:
   – Execute backup of the specified vm/group or all
• Restore:
   – Execute restore of the specified archived generation as a new VM
• Check:
   – Check backup archives are valid
• Status:
   – Show status of backup archives



                                                                        5
Commands –cont.
• Destroy:
   – Remove a virtual machine from vSphere environment
• Clean:
   – Delete archives of virtual machines
• List:
   – Get a list of virtual machines satisfying specified conditions
• Help:
   – Show usage




                                                                      6
Workflow
      Backup                    Restore
    Prepare config              Prepare config
   (Register to cron)

  Read config/profiles       Read config/profiles
Get vSphere information      Restore target VMs
  Backup target VMs               Import ovf
Export ovf (without disks)   Add disks to new VM
     Create snapshot          Restore vmdk files
 (Get changed block info)
    Backup vmdk files
     Delete snapshot
  (Delete previous dump)
                                     User task
      Update profiles
                                     Vmbkp task

                                                    7
Configuration files
• Global (required)
   – Global configuration
      •   Backup directory
      •   Number of generations to keep
      •   Vmdkbkp path to backup/restore vmdk files
      •   vSphere authentication information


• Group (optional)
   – Group configuration for convenient use



                                                      8
Layout of Archive Files
• <backup dir>
  – AllVM profile

• <backup dir>/<vm>/
  – VM profile

• <backup dir>/<vm>/<generation>/
  – Generation profile
  – Ovf file for VM configuration
  – Dump/digest/rdiff/bmp files for each vmdk
                                                9
Profiles
• Allvm
   – Information/status of all VMs in the target vSphere environment
   – Updated by update command

• Vm
   – Information/status of archives of a VM
   – Created/updated by backup command and referred by restore
     command

• Generation
   – Information/status of each generation of backup of a VM
   – Created by backup command and referred by restore command


                                                                  10
Software Architecture
          Cron                             User


                  Command-line Interface

                 Backup/Restore Controller

Utility           Soap Wrapper         Vmdkbkp Wrapper
Library               Snapshot
                                         Vmdkbkp: Vmdk
                         Ovf             Backup/Restore
   Bitmap           Changed blocks
 XML (Ovf)                              Tool/Library (C++)
Config/Profile      VI Java Library        VDDK C Library



VMware vSphere         VMware ESX(i)                SAN
 vCenter Server           Host                    Storage
                                                             11
Required Tools and Libraries
• Java SE 1.6
   – Java, Javac, Jar comands
• VI-Java 2.1GA
   – soap wrapper


• G++ 4.4
• Boost 1.43
   – shared_ptr, scoped_array, thread, and iostreams
• VDDK 1.2.0
   – Virtual disk development kit by Vmware


                                                       12
Source Code Overview (Java)
• control/*                       • config/*
   – Command-line I/F                – Config/profile parser and
   – Backup/restore Controller         accessor
   – Vmdkbkp wrapper
                                  • profile/*
• soap/*                             – Semantic-level config/profile
   – Soap (VI-Java) wrapper            managers


• utility/*
   – Utilities for Ovf, Bitmap,
     Command line, etc.

                                                                   13
VmdkBkp (C++ code)
What is VmdkBkp?
• Online backup software
  for remote/local vmdk files
  in VMware vSphere environments.
  – Currently support vSphere version 4.


• Written in C++
• Uses VDDK Library by Vmware
• Used by Vmbkp (java) tool
Archive Files
• Dump/Rdiff
  – VMDK metadata and blocks archive
    without zero-blocks
  – Dump is full archive,
    Rdiff is reverse differential one
  – Dump + Rdiff = Previous dump

• Digest
  – MD5 digest data for all blocks of VMDK
  – Used to check equality of blocks,
    and validate corresponding dump/rdiff files
Supported Commands
• Dump
   – Execute full/differential/incremental dump
• Restore
   – Execute restore with dump/rdiff
• Check
   – Validate dump/rdiff with digest data
• Print
   – Print dump/rdiff/digest for human read
• Digest
   – Make digest from dump
• Merge
   – Make past dump from current dump and past rdiff(s)
How to Backup Remote Vmdk
• Command line:
  – vmdkbkp dump [connect options] --mode [full/diff/incr]
    --vm [vm moref] --snapshot [snapshot moref]
    --remote [disk path]
    --dumpin [previous dump] --dumpout [current dump]
    --digestin [previous digest] --digestout [current digest]
    --bmpin [changed block bitmap]
    --rdiffout [current-previous rdiff]

• Inputs/Outputs:
  – Full: Just --dumpout and --digestout are required
  – Diff: All options except --bmpin are required
  – Incr: All options are required
Full Backup
     VM             Virtual Disk
Configuration         (vmdk)           • Ovf
                       All blocks        – VM configuration data
                                           (without disk information)
         Vmbkp Tool
                                       • Dump
                     Non-zero blocks     – Full data of vmdk
                                           (without zero-blocks)
        Backup files
                                       • Digest
             Dump                        – Digest data of all blocks

       Ovf      Digest

                                                                        19
Differential Backup
     VM            Virtual Disk       • Rdiff
Configuration        (vmdk)
                                             – Reverse difference
                      All blocks               data of vmdk
                                             – Dump’ + Rdiff’ = Dump
         Vmbkp Tool
                                                 • You can delete dump of previous
                                                   generation after current backup
         Non-zero blocks

   Backup files of                   Backup files of
previous generation                current generation

        Dump                         Dump’          Rdiff’


  Ovf     Digest              Ovf’     Digest’
                                                                                20
Incremental Backup
     VM            Virtual Disk       Changed Block
Configuration        (vmdk)            Information

                   Changed blocks
                                       • Changed Block Information
         Vmbkp Tool                          – The set of address of changed
                                               blocks after previous backup
         Non-zero blocks

   Backup files of                  Backup files of
previous generation               current generation

        Dump                         Dump’        Rdiff’


  Ovf     Digest              Ovf’     Digest’
                                                                          21
Vmdk Archives Relationships
                          Write some data on the 1st vm.
          0.vmdk                                            1.vmdk

           Full                                               Full
          dump                                               dump
                                    Diff
                                   dump
          0.dump                                            1.dump
          0.digest                                          1.digest

                                    Incr
                                   dump                     1-0.rdiff

Check the all dump/digest files                            rdiff2bmp
from all possible paths are the same
using check_dump_and_dump and                              1.bitmap
check_digest_and_digest.
Vmdk Archives Relationships –cont.
               Write some data on the 1st vm.
    0.vmdk                                          1.vmdk


    Restore                                         Restore

                        Merge
    0.dump                                          1.dump
    0.digest                                        1.digest


                Restore to 0.dump
                                                   1-0.rdiff
    Digest       Full dump 0.vmdk to 0r.dump
                 Check 0.dump and 0r.dump are the same.
                Merge 1.dump and 1-0.rdiff to 0m.dump
                 Digest 0m.dump to 0m.digest
                 Check 0.{dump,digest} and 0m.{dump.digest} are the same.
Software Architecture of vmdkbkp
                           Command                      Command executor

              Util           Header      Manager        Specific components

           Exception        Serialize    Bitmap         General components


• Command                                 • Manager
   – Parse command-line and execute it        – Manage (1) VDDK connection,
• Util                                          (2) vmdk file access, and (3)
                                                dump/rdiff/digest file access
   – Configuration, Time, etc.
                                          • Serialize
• Header                                     – StringMap/Integers data serializer
   – Manage header/blocks of
     dump/rdiff/digest files              • Bitmap
• Exception                                  – Bitmap data serializer
   – Exceptions and related macros.
VDDK Control with Fork
• Solves the problem that VDDK re-initialization
  for SAN transfer due to SCSI reservation
  conflict error inevitably fails and falls back to
  NBD transfer.




                                                      25
VDDK Control with Fork –cont.
Main process


                                              Provide the same interface
                        VddkController        with Vddk/Vmdk Manager


                      VddkWorker(parent)      Manage processes and
                                              communicate with child


Forked process
                                              Wrapper of Vddk/Vmdk
                       VddkWorker(child)      manager and communicate
                                              with parent


                 VddkManager    VmdkManager
Multi-threaded Archive Manager
• Improves performance with gziped multi-
  stream dump/restore/check/merge
  operations
      Archive Managers       Interface of archive accesses
                             specialized for each command

     Archive IO Managers     Multi-threaded/Single-threaded
                             stream access for each archive file

    DataReader, DataWriter   Worker thread and its controller for
                             Gzip compresson/decompression

           Queue             Thread-safe FIFO

                                                                    27
Restore/Check with MultiArchiveManager


  Archive Manager       Full dump       Rdiff       Rdiff
                                    waiting     waiting




                        Full dump

Multi Archive Manager     Rdiff

                          Rdiff
Restore with SAN
• Problem in restore with SAN
  – Failed auto-allocation for thin vmdk
  – Auto-allocation is too slow for thick vmdk
  – There is no efficient allocation API.


• If zero-block restore with NBD is faster, use it
  as allocation method
  –  not fast…
Future Work
• Improve parallelism
  – Solving SCSI reservation conflict problem
  – Multi-threaded compression
• Restore with SAN
  – Depends on VDDK’s efficient block allocation API




                                                       30

More Related Content

What's hot

Configuring and Using the New Virtualization Features in Windows Server 2012
Configuring and Using the New Virtualization Features in Windows Server 2012Configuring and Using the New Virtualization Features in Windows Server 2012
Configuring and Using the New Virtualization Features in Windows Server 2012
Lai Yoong Seng
 
QEMU Disk IO Which performs Better: Native or threads?
QEMU Disk IO Which performs Better: Native or threads?QEMU Disk IO Which performs Better: Native or threads?
QEMU Disk IO Which performs Better: Native or threads?
Pradeep Kumar
 
Hyper V And Scvmm Best Practis
Hyper V And Scvmm Best PractisHyper V And Scvmm Best Practis
Hyper V And Scvmm Best Practis
Blauge
 
Visão geral sobre Citrix XenServer 6 - Ferramentas e Licenciamento
Visão geral sobre Citrix XenServer 6 - Ferramentas e LicenciamentoVisão geral sobre Citrix XenServer 6 - Ferramentas e Licenciamento
Visão geral sobre Citrix XenServer 6 - Ferramentas e LicenciamentoLorscheider Santiago
 
Kvm performance optimization for ubuntu
Kvm performance optimization for ubuntuKvm performance optimization for ubuntu
Kvm performance optimization for ubuntuSim Janghoon
 
Virtualization - Kernel Virtual Machine (KVM)
Virtualization - Kernel Virtual Machine (KVM)Virtualization - Kernel Virtual Machine (KVM)
Virtualization - Kernel Virtual Machine (KVM)Wan Leung Wong
 
Dealing with Hardware Heterogeneity Using EmbeddedXEN, a Virtualization Frame...
Dealing with Hardware Heterogeneity Using EmbeddedXEN, a Virtualization Frame...Dealing with Hardware Heterogeneity Using EmbeddedXEN, a Virtualization Frame...
Dealing with Hardware Heterogeneity Using EmbeddedXEN, a Virtualization Frame...
The Linux Foundation
 
S4 xen hypervisor_20080622
S4 xen hypervisor_20080622S4 xen hypervisor_20080622
S4 xen hypervisor_20080622Todd Deshane
 
12 christian ferber xen_server_advanced
12 christian ferber xen_server_advanced12 christian ferber xen_server_advanced
12 christian ferber xen_server_advancedDigicomp Academy AG
 
4. v sphere big data extensions hadoop
4. v sphere big data extensions   hadoop4. v sphere big data extensions   hadoop
4. v sphere big data extensions hadoop
Chiou-Nan Chen
 
Windsor: Domain 0 Disaggregation for XenServer and XCP
	Windsor: Domain 0 Disaggregation for XenServer and XCP	Windsor: Domain 0 Disaggregation for XenServer and XCP
Windsor: Domain 0 Disaggregation for XenServer and XCP
The Linux Foundation
 
Hyper-V Best Practices & Tips and Tricks
Hyper-V Best Practices & Tips and TricksHyper-V Best Practices & Tips and Tricks
Hyper-V Best Practices & Tips and TricksAmit Gatenyo
 
VMware Performance Troubleshooting
VMware Performance TroubleshootingVMware Performance Troubleshooting
VMware Performance Troubleshootingglbsolutions
 
BACD July 2012 : The Xen Cloud Platform
BACD July 2012 : The Xen Cloud Platform BACD July 2012 : The Xen Cloud Platform
BACD July 2012 : The Xen Cloud Platform
The Linux Foundation
 
Building a Distributed Block Storage System on Xen
Building a Distributed Block Storage System on XenBuilding a Distributed Block Storage System on Xen
Building a Distributed Block Storage System on XenThe Linux Foundation
 
Windows server 2012 failover clustering new features
Windows server 2012 failover clustering new featuresWindows server 2012 failover clustering new features
Windows server 2012 failover clustering new featuresJoseph D'Antoni
 
XCP: The Art of Open Virtualization for the Enterprise and the Cloud
XCP: The Art of Open Virtualization for the Enterprise and the CloudXCP: The Art of Open Virtualization for the Enterprise and the Cloud
XCP: The Art of Open Virtualization for the Enterprise and the Cloud
The Linux Foundation
 
VMware vSphere Performance Troubleshooting
VMware vSphere Performance TroubleshootingVMware vSphere Performance Troubleshooting
VMware vSphere Performance Troubleshooting
Dan Brinkmann
 
Virtualization Best Practices-Tips and Tricks From Expert
Virtualization Best Practices-Tips and Tricks From ExpertVirtualization Best Practices-Tips and Tricks From Expert
Virtualization Best Practices-Tips and Tricks From Expert
Lai Yoong Seng
 

What's hot (20)

Configuring and Using the New Virtualization Features in Windows Server 2012
Configuring and Using the New Virtualization Features in Windows Server 2012Configuring and Using the New Virtualization Features in Windows Server 2012
Configuring and Using the New Virtualization Features in Windows Server 2012
 
QEMU Disk IO Which performs Better: Native or threads?
QEMU Disk IO Which performs Better: Native or threads?QEMU Disk IO Which performs Better: Native or threads?
QEMU Disk IO Which performs Better: Native or threads?
 
Hyper V And Scvmm Best Practis
Hyper V And Scvmm Best PractisHyper V And Scvmm Best Practis
Hyper V And Scvmm Best Practis
 
Visão geral sobre Citrix XenServer 6 - Ferramentas e Licenciamento
Visão geral sobre Citrix XenServer 6 - Ferramentas e LicenciamentoVisão geral sobre Citrix XenServer 6 - Ferramentas e Licenciamento
Visão geral sobre Citrix XenServer 6 - Ferramentas e Licenciamento
 
Kvm performance optimization for ubuntu
Kvm performance optimization for ubuntuKvm performance optimization for ubuntu
Kvm performance optimization for ubuntu
 
Virtualization - Kernel Virtual Machine (KVM)
Virtualization - Kernel Virtual Machine (KVM)Virtualization - Kernel Virtual Machine (KVM)
Virtualization - Kernel Virtual Machine (KVM)
 
Dealing with Hardware Heterogeneity Using EmbeddedXEN, a Virtualization Frame...
Dealing with Hardware Heterogeneity Using EmbeddedXEN, a Virtualization Frame...Dealing with Hardware Heterogeneity Using EmbeddedXEN, a Virtualization Frame...
Dealing with Hardware Heterogeneity Using EmbeddedXEN, a Virtualization Frame...
 
S4 xen hypervisor_20080622
S4 xen hypervisor_20080622S4 xen hypervisor_20080622
S4 xen hypervisor_20080622
 
12 christian ferber xen_server_advanced
12 christian ferber xen_server_advanced12 christian ferber xen_server_advanced
12 christian ferber xen_server_advanced
 
The kvm virtualization way
The kvm virtualization wayThe kvm virtualization way
The kvm virtualization way
 
4. v sphere big data extensions hadoop
4. v sphere big data extensions   hadoop4. v sphere big data extensions   hadoop
4. v sphere big data extensions hadoop
 
Windsor: Domain 0 Disaggregation for XenServer and XCP
	Windsor: Domain 0 Disaggregation for XenServer and XCP	Windsor: Domain 0 Disaggregation for XenServer and XCP
Windsor: Domain 0 Disaggregation for XenServer and XCP
 
Hyper-V Best Practices & Tips and Tricks
Hyper-V Best Practices & Tips and TricksHyper-V Best Practices & Tips and Tricks
Hyper-V Best Practices & Tips and Tricks
 
VMware Performance Troubleshooting
VMware Performance TroubleshootingVMware Performance Troubleshooting
VMware Performance Troubleshooting
 
BACD July 2012 : The Xen Cloud Platform
BACD July 2012 : The Xen Cloud Platform BACD July 2012 : The Xen Cloud Platform
BACD July 2012 : The Xen Cloud Platform
 
Building a Distributed Block Storage System on Xen
Building a Distributed Block Storage System on XenBuilding a Distributed Block Storage System on Xen
Building a Distributed Block Storage System on Xen
 
Windows server 2012 failover clustering new features
Windows server 2012 failover clustering new featuresWindows server 2012 failover clustering new features
Windows server 2012 failover clustering new features
 
XCP: The Art of Open Virtualization for the Enterprise and the Cloud
XCP: The Art of Open Virtualization for the Enterprise and the CloudXCP: The Art of Open Virtualization for the Enterprise and the Cloud
XCP: The Art of Open Virtualization for the Enterprise and the Cloud
 
VMware vSphere Performance Troubleshooting
VMware vSphere Performance TroubleshootingVMware vSphere Performance Troubleshooting
VMware vSphere Performance Troubleshooting
 
Virtualization Best Practices-Tips and Tricks From Expert
Virtualization Best Practices-Tips and Tricks From ExpertVirtualization Best Practices-Tips and Tricks From Expert
Virtualization Best Practices-Tips and Tricks From Expert
 

Similar to Vmbkp: VMware vSphere Incremental Backup Tool

Veeamvpower
VeeamvpowerVeeamvpower
Veeamvpower
toreil
 
Denver VMUG nov 2011
Denver VMUG nov 2011Denver VMUG nov 2011
Denver VMUG nov 2011
Dan Brinkmann
 
VMware vSphere Version Comparison 4.0 to 6.5
VMware  vSphere Version Comparison 4.0 to 6.5VMware  vSphere Version Comparison 4.0 to 6.5
VMware vSphere Version Comparison 4.0 to 6.5
Sabir Hussain
 
What’s New in VMware vCenter Site Recovery Manager v5.0
What’s New in VMware vCenter Site Recovery Manager v5.0What’s New in VMware vCenter Site Recovery Manager v5.0
What’s New in VMware vCenter Site Recovery Manager v5.0
Eric Sloof
 
Turning OpenStack Swift into a VM storage platform
Turning OpenStack Swift into a VM storage platformTurning OpenStack Swift into a VM storage platform
Turning OpenStack Swift into a VM storage platformOpenStack_Online
 
i//:squared Business Continuity Event
i//:squared Business Continuity Eventi//:squared Business Continuity Event
i//:squared Business Continuity EventJonathan Allmayer
 
VMware Backups That Work—Lessons Learned From VADP Performance Benchmark Testing
VMware Backups That Work—Lessons Learned From VADP Performance Benchmark TestingVMware Backups That Work—Lessons Learned From VADP Performance Benchmark Testing
VMware Backups That Work—Lessons Learned From VADP Performance Benchmark Testing
Symantec
 
Turning OpenStack Swift into a VM storage platform
Turning OpenStack Swift into a VM storage platformTurning OpenStack Swift into a VM storage platform
Turning OpenStack Swift into a VM storage platform
wim_provoost
 
TSM og virtualisering
 TSM og virtualisering TSM og virtualisering
TSM og virtualiseringSolv AS
 
VMUGIT UC 2013 - 06 Mike Laverick
VMUGIT UC 2013 - 06 Mike LaverickVMUGIT UC 2013 - 06 Mike Laverick
VMUGIT UC 2013 - 06 Mike Laverick
VMUG IT
 
Rmll Virtualization As Is Tool 20090707 V1.0
Rmll Virtualization As Is Tool 20090707 V1.0Rmll Virtualization As Is Tool 20090707 V1.0
Rmll Virtualization As Is Tool 20090707 V1.0guest72e8c1
 
Setting up Storage Features in Windows Server 2012
Setting up Storage Features in Windows Server 2012Setting up Storage Features in Windows Server 2012
Setting up Storage Features in Windows Server 2012
Lai Yoong Seng
 
V sphere 5.1-storage-features-&-futures
V sphere 5.1-storage-features-&-futuresV sphere 5.1-storage-features-&-futures
V sphere 5.1-storage-features-&-futuressubtitle
 
Presentation oracle rac on vsphere 5
Presentation   oracle rac on vsphere 5Presentation   oracle rac on vsphere 5
Presentation oracle rac on vsphere 5solarisyourep
 
Windows server 8 and hyper v
Windows server 8 and hyper vWindows server 8 and hyper v
Windows server 8 and hyper v
Susantha Silva
 
20 christian ferber xen_server_6_workshop
20 christian ferber xen_server_6_workshop20 christian ferber xen_server_6_workshop
20 christian ferber xen_server_6_workshopDigicomp Academy AG
 
A day in the life of a VSAN I/O - STO7875
A day in the life of a VSAN I/O - STO7875A day in the life of a VSAN I/O - STO7875
A day in the life of a VSAN I/O - STO7875
Duncan Epping
 

Similar to Vmbkp: VMware vSphere Incremental Backup Tool (20)

Veeamvpower
VeeamvpowerVeeamvpower
Veeamvpower
 
Denver VMUG nov 2011
Denver VMUG nov 2011Denver VMUG nov 2011
Denver VMUG nov 2011
 
VMware vSphere Version Comparison 4.0 to 6.5
VMware  vSphere Version Comparison 4.0 to 6.5VMware  vSphere Version Comparison 4.0 to 6.5
VMware vSphere Version Comparison 4.0 to 6.5
 
What’s New in VMware vCenter Site Recovery Manager v5.0
What’s New in VMware vCenter Site Recovery Manager v5.0What’s New in VMware vCenter Site Recovery Manager v5.0
What’s New in VMware vCenter Site Recovery Manager v5.0
 
Turning OpenStack Swift into a VM storage platform
Turning OpenStack Swift into a VM storage platformTurning OpenStack Swift into a VM storage platform
Turning OpenStack Swift into a VM storage platform
 
vSphere
vSpherevSphere
vSphere
 
i//:squared Business Continuity Event
i//:squared Business Continuity Eventi//:squared Business Continuity Event
i//:squared Business Continuity Event
 
VMware Backups That Work—Lessons Learned From VADP Performance Benchmark Testing
VMware Backups That Work—Lessons Learned From VADP Performance Benchmark TestingVMware Backups That Work—Lessons Learned From VADP Performance Benchmark Testing
VMware Backups That Work—Lessons Learned From VADP Performance Benchmark Testing
 
Turning OpenStack Swift into a VM storage platform
Turning OpenStack Swift into a VM storage platformTurning OpenStack Swift into a VM storage platform
Turning OpenStack Swift into a VM storage platform
 
TSM og virtualisering
 TSM og virtualisering TSM og virtualisering
TSM og virtualisering
 
VMUGIT UC 2013 - 06 Mike Laverick
VMUGIT UC 2013 - 06 Mike LaverickVMUGIT UC 2013 - 06 Mike Laverick
VMUGIT UC 2013 - 06 Mike Laverick
 
RMLL / LSM 2009
RMLL / LSM 2009RMLL / LSM 2009
RMLL / LSM 2009
 
Rmll Virtualization As Is Tool 20090707 V1.0
Rmll Virtualization As Is Tool 20090707 V1.0Rmll Virtualization As Is Tool 20090707 V1.0
Rmll Virtualization As Is Tool 20090707 V1.0
 
A32 Database Virtulization Technologies
A32 Database Virtulization TechnologiesA32 Database Virtulization Technologies
A32 Database Virtulization Technologies
 
Setting up Storage Features in Windows Server 2012
Setting up Storage Features in Windows Server 2012Setting up Storage Features in Windows Server 2012
Setting up Storage Features in Windows Server 2012
 
V sphere 5.1-storage-features-&-futures
V sphere 5.1-storage-features-&-futuresV sphere 5.1-storage-features-&-futures
V sphere 5.1-storage-features-&-futures
 
Presentation oracle rac on vsphere 5
Presentation   oracle rac on vsphere 5Presentation   oracle rac on vsphere 5
Presentation oracle rac on vsphere 5
 
Windows server 8 and hyper v
Windows server 8 and hyper vWindows server 8 and hyper v
Windows server 8 and hyper v
 
20 christian ferber xen_server_6_workshop
20 christian ferber xen_server_6_workshop20 christian ferber xen_server_6_workshop
20 christian ferber xen_server_6_workshop
 
A day in the life of a VSAN I/O - STO7875
A day in the life of a VSAN I/O - STO7875A day in the life of a VSAN I/O - STO7875
A day in the life of a VSAN I/O - STO7875
 

More from Takashi Hoshino

Serializabilityとは何か
Serializabilityとは何かSerializabilityとは何か
Serializabilityとは何か
Takashi Hoshino
 
Isolation Level について
Isolation Level についてIsolation Level について
Isolation Level について
Takashi Hoshino
 
データベースシステムにおける直列化可能性と等価な時刻割り当てルールの提案 rev.3
データベースシステムにおける直列化可能性と等価な時刻割り当てルールの提案 rev.3データベースシステムにおける直列化可能性と等価な時刻割り当てルールの提案 rev.3
データベースシステムにおける直列化可能性と等価な時刻割り当てルールの提案 rev.3
Takashi Hoshino
 
WalB Driver Internals
WalB Driver InternalsWalB Driver Internals
WalB Driver Internals
Takashi Hoshino
 
トランザクションの並行実行制御 rev.2
トランザクションの並行実行制御 rev.2トランザクションの並行実行制御 rev.2
トランザクションの並行実行制御 rev.2
Takashi Hoshino
 
トランザクションの並行処理制御
トランザクションの並行処理制御トランザクションの並行処理制御
トランザクションの並行処理制御
Takashi Hoshino
 
Effective Modern C++ 勉強会#8 Item38
Effective Modern C++ 勉強会#8 Item38Effective Modern C++ 勉強会#8 Item38
Effective Modern C++ 勉強会#8 Item38
Takashi Hoshino
 
Effective Modern C++ 勉強会#6 Item25
Effective Modern C++ 勉強会#6 Item25Effective Modern C++ 勉強会#6 Item25
Effective Modern C++ 勉強会#6 Item25
Takashi Hoshino
 
Effective Modern C++ 勉強会#1 Item3,4
Effective Modern C++ 勉強会#1 Item3,4Effective Modern C++ 勉強会#1 Item3,4
Effective Modern C++ 勉強会#1 Item3,4
Takashi Hoshino
 
WALをバックアップとレプリケーションに使う方法
WALをバックアップとレプリケーションに使う方法WALをバックアップとレプリケーションに使う方法
WALをバックアップとレプリケーションに使う方法
Takashi Hoshino
 
メモリより大きなデータの Sufix Array 構築方法の紹介
メモリより大きなデータの Sufix Array 構築方法の紹介メモリより大きなデータの Sufix Array 構築方法の紹介
メモリより大きなデータの Sufix Array 構築方法の紹介
Takashi Hoshino
 
10分で分かるバックアップとレプリケーション
10分で分かるバックアップとレプリケーション10分で分かるバックアップとレプリケーション
10分で分かるバックアップとレプリケーションTakashi Hoshino
 
10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤTakashi Hoshino
 
10分で分かるデータストレージ
10分で分かるデータストレージ10分で分かるデータストレージ
10分で分かるデータストレージTakashi Hoshino
 
Intel TSX 触ってみた 追加実験 (TTAS)
Intel TSX 触ってみた 追加実験 (TTAS)Intel TSX 触ってみた 追加実験 (TTAS)
Intel TSX 触ってみた 追加実験 (TTAS)
Takashi Hoshino
 
Intel TSX HLE を触ってみた x86opti
Intel TSX HLE を触ってみた x86optiIntel TSX HLE を触ってみた x86opti
Intel TSX HLE を触ってみた x86opti
Takashi Hoshino
 
Suffix Array 構築方法の紹介
Suffix Array 構築方法の紹介Suffix Array 構築方法の紹介
Suffix Array 構築方法の紹介Takashi Hoshino
 
An Efficient Backup and Replication of Storage
An Efficient Backup and Replication of StorageAn Efficient Backup and Replication of Storage
An Efficient Backup and Replication of Storage
Takashi Hoshino
 
ログ先行書き込みを用いたストレージ差分取得の一手法
ログ先行書き込みを用いたストレージ差分取得の一手法ログ先行書き込みを用いたストレージ差分取得の一手法
ログ先行書き込みを用いたストレージ差分取得の一手法
Takashi Hoshino
 

More from Takashi Hoshino (20)

Serializabilityとは何か
Serializabilityとは何かSerializabilityとは何か
Serializabilityとは何か
 
Isolation Level について
Isolation Level についてIsolation Level について
Isolation Level について
 
データベースシステムにおける直列化可能性と等価な時刻割り当てルールの提案 rev.3
データベースシステムにおける直列化可能性と等価な時刻割り当てルールの提案 rev.3データベースシステムにおける直列化可能性と等価な時刻割り当てルールの提案 rev.3
データベースシステムにおける直列化可能性と等価な時刻割り当てルールの提案 rev.3
 
WalB Driver Internals
WalB Driver InternalsWalB Driver Internals
WalB Driver Internals
 
トランザクションの並行実行制御 rev.2
トランザクションの並行実行制御 rev.2トランザクションの並行実行制御 rev.2
トランザクションの並行実行制御 rev.2
 
トランザクションの並行処理制御
トランザクションの並行処理制御トランザクションの並行処理制御
トランザクションの並行処理制御
 
Effective Modern C++ 勉強会#8 Item38
Effective Modern C++ 勉強会#8 Item38Effective Modern C++ 勉強会#8 Item38
Effective Modern C++ 勉強会#8 Item38
 
Effective Modern C++ 勉強会#6 Item25
Effective Modern C++ 勉強会#6 Item25Effective Modern C++ 勉強会#6 Item25
Effective Modern C++ 勉強会#6 Item25
 
Effective Modern C++ 勉強会#1 Item3,4
Effective Modern C++ 勉強会#1 Item3,4Effective Modern C++ 勉強会#1 Item3,4
Effective Modern C++ 勉強会#1 Item3,4
 
WALをバックアップとレプリケーションに使う方法
WALをバックアップとレプリケーションに使う方法WALをバックアップとレプリケーションに使う方法
WALをバックアップとレプリケーションに使う方法
 
メモリより大きなデータの Sufix Array 構築方法の紹介
メモリより大きなデータの Sufix Array 構築方法の紹介メモリより大きなデータの Sufix Array 構築方法の紹介
メモリより大きなデータの Sufix Array 構築方法の紹介
 
WalBの紹介
WalBの紹介WalBの紹介
WalBの紹介
 
10分で分かるバックアップとレプリケーション
10分で分かるバックアップとレプリケーション10分で分かるバックアップとレプリケーション
10分で分かるバックアップとレプリケーション
 
10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ
 
10分で分かるデータストレージ
10分で分かるデータストレージ10分で分かるデータストレージ
10分で分かるデータストレージ
 
Intel TSX 触ってみた 追加実験 (TTAS)
Intel TSX 触ってみた 追加実験 (TTAS)Intel TSX 触ってみた 追加実験 (TTAS)
Intel TSX 触ってみた 追加実験 (TTAS)
 
Intel TSX HLE を触ってみた x86opti
Intel TSX HLE を触ってみた x86optiIntel TSX HLE を触ってみた x86opti
Intel TSX HLE を触ってみた x86opti
 
Suffix Array 構築方法の紹介
Suffix Array 構築方法の紹介Suffix Array 構築方法の紹介
Suffix Array 構築方法の紹介
 
An Efficient Backup and Replication of Storage
An Efficient Backup and Replication of StorageAn Efficient Backup and Replication of Storage
An Efficient Backup and Replication of Storage
 
ログ先行書き込みを用いたストレージ差分取得の一手法
ログ先行書き込みを用いたストレージ差分取得の一手法ログ先行書き込みを用いたストレージ差分取得の一手法
ログ先行書き込みを用いたストレージ差分取得の一手法
 

Recently uploaded

Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 

Recently uploaded (20)

Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 

Vmbkp: VMware vSphere Incremental Backup Tool

  • 1. Vmbkp: An Online Backup Tool for VMware vSphere Oct 15, 2010 HOSHINO Takashi Cybozu Labs, Inc. 1
  • 2. What is Vmbkp? • Backup software for Virtual Machines in VMware vSphere environment – Online full/differential/incremental backup – Multi-generation backup management – Efficient archive access with sequential IO and reverse diff. – Command-line I/F for scheduling by Cron 2
  • 3. Supported platform • VMware vSphere 4 – vCenter server managing several ESX(i)s – Single ESX(i) (not tested) – Free ESXi is not supported (snapshot fails) • Backup server – Linux on x86_64 host. – CentOS 5.5 64bit is confirmed 3
  • 4. Hardware Architecture Control/GetInfo with vSphere Soap Protocol VMware vSphere vCenter Server Vmbkp LAN Server VMware VMware ESX(i) Host ESX(i) Host SAN Data Transfer via SAN with VDDK Protocol Backup VM VM VM Storage Storage Storage Storage You can use NBD transfer without SAN. 4
  • 5. Commands • Update: – Get and save information of all available VMs • Backup: – Execute backup of the specified vm/group or all • Restore: – Execute restore of the specified archived generation as a new VM • Check: – Check backup archives are valid • Status: – Show status of backup archives 5
  • 6. Commands –cont. • Destroy: – Remove a virtual machine from vSphere environment • Clean: – Delete archives of virtual machines • List: – Get a list of virtual machines satisfying specified conditions • Help: – Show usage 6
  • 7. Workflow Backup Restore Prepare config Prepare config (Register to cron) Read config/profiles Read config/profiles Get vSphere information Restore target VMs Backup target VMs Import ovf Export ovf (without disks) Add disks to new VM Create snapshot Restore vmdk files (Get changed block info) Backup vmdk files Delete snapshot (Delete previous dump) User task Update profiles Vmbkp task 7
  • 8. Configuration files • Global (required) – Global configuration • Backup directory • Number of generations to keep • Vmdkbkp path to backup/restore vmdk files • vSphere authentication information • Group (optional) – Group configuration for convenient use 8
  • 9. Layout of Archive Files • <backup dir> – AllVM profile • <backup dir>/<vm>/ – VM profile • <backup dir>/<vm>/<generation>/ – Generation profile – Ovf file for VM configuration – Dump/digest/rdiff/bmp files for each vmdk 9
  • 10. Profiles • Allvm – Information/status of all VMs in the target vSphere environment – Updated by update command • Vm – Information/status of archives of a VM – Created/updated by backup command and referred by restore command • Generation – Information/status of each generation of backup of a VM – Created by backup command and referred by restore command 10
  • 11. Software Architecture Cron User Command-line Interface Backup/Restore Controller Utility Soap Wrapper Vmdkbkp Wrapper Library Snapshot Vmdkbkp: Vmdk Ovf Backup/Restore Bitmap Changed blocks XML (Ovf) Tool/Library (C++) Config/Profile VI Java Library VDDK C Library VMware vSphere VMware ESX(i) SAN vCenter Server Host Storage 11
  • 12. Required Tools and Libraries • Java SE 1.6 – Java, Javac, Jar comands • VI-Java 2.1GA – soap wrapper • G++ 4.4 • Boost 1.43 – shared_ptr, scoped_array, thread, and iostreams • VDDK 1.2.0 – Virtual disk development kit by Vmware 12
  • 13. Source Code Overview (Java) • control/* • config/* – Command-line I/F – Config/profile parser and – Backup/restore Controller accessor – Vmdkbkp wrapper • profile/* • soap/* – Semantic-level config/profile – Soap (VI-Java) wrapper managers • utility/* – Utilities for Ovf, Bitmap, Command line, etc. 13
  • 15. What is VmdkBkp? • Online backup software for remote/local vmdk files in VMware vSphere environments. – Currently support vSphere version 4. • Written in C++ • Uses VDDK Library by Vmware • Used by Vmbkp (java) tool
  • 16. Archive Files • Dump/Rdiff – VMDK metadata and blocks archive without zero-blocks – Dump is full archive, Rdiff is reverse differential one – Dump + Rdiff = Previous dump • Digest – MD5 digest data for all blocks of VMDK – Used to check equality of blocks, and validate corresponding dump/rdiff files
  • 17. Supported Commands • Dump – Execute full/differential/incremental dump • Restore – Execute restore with dump/rdiff • Check – Validate dump/rdiff with digest data • Print – Print dump/rdiff/digest for human read • Digest – Make digest from dump • Merge – Make past dump from current dump and past rdiff(s)
  • 18. How to Backup Remote Vmdk • Command line: – vmdkbkp dump [connect options] --mode [full/diff/incr] --vm [vm moref] --snapshot [snapshot moref] --remote [disk path] --dumpin [previous dump] --dumpout [current dump] --digestin [previous digest] --digestout [current digest] --bmpin [changed block bitmap] --rdiffout [current-previous rdiff] • Inputs/Outputs: – Full: Just --dumpout and --digestout are required – Diff: All options except --bmpin are required – Incr: All options are required
  • 19. Full Backup VM Virtual Disk Configuration (vmdk) • Ovf All blocks – VM configuration data (without disk information) Vmbkp Tool • Dump Non-zero blocks – Full data of vmdk (without zero-blocks) Backup files • Digest Dump – Digest data of all blocks Ovf Digest 19
  • 20. Differential Backup VM Virtual Disk • Rdiff Configuration (vmdk) – Reverse difference All blocks data of vmdk – Dump’ + Rdiff’ = Dump Vmbkp Tool • You can delete dump of previous generation after current backup Non-zero blocks Backup files of Backup files of previous generation current generation Dump Dump’ Rdiff’ Ovf Digest Ovf’ Digest’ 20
  • 21. Incremental Backup VM Virtual Disk Changed Block Configuration (vmdk) Information Changed blocks • Changed Block Information Vmbkp Tool – The set of address of changed blocks after previous backup Non-zero blocks Backup files of Backup files of previous generation current generation Dump Dump’ Rdiff’ Ovf Digest Ovf’ Digest’ 21
  • 22. Vmdk Archives Relationships Write some data on the 1st vm. 0.vmdk 1.vmdk Full Full dump dump Diff dump 0.dump 1.dump 0.digest 1.digest Incr dump 1-0.rdiff Check the all dump/digest files rdiff2bmp from all possible paths are the same using check_dump_and_dump and 1.bitmap check_digest_and_digest.
  • 23. Vmdk Archives Relationships –cont. Write some data on the 1st vm. 0.vmdk 1.vmdk Restore Restore Merge 0.dump 1.dump 0.digest 1.digest Restore to 0.dump 1-0.rdiff Digest  Full dump 0.vmdk to 0r.dump  Check 0.dump and 0r.dump are the same. Merge 1.dump and 1-0.rdiff to 0m.dump  Digest 0m.dump to 0m.digest  Check 0.{dump,digest} and 0m.{dump.digest} are the same.
  • 24. Software Architecture of vmdkbkp Command Command executor Util Header Manager Specific components Exception Serialize Bitmap General components • Command • Manager – Parse command-line and execute it – Manage (1) VDDK connection, • Util (2) vmdk file access, and (3) dump/rdiff/digest file access – Configuration, Time, etc. • Serialize • Header – StringMap/Integers data serializer – Manage header/blocks of dump/rdiff/digest files • Bitmap • Exception – Bitmap data serializer – Exceptions and related macros.
  • 25. VDDK Control with Fork • Solves the problem that VDDK re-initialization for SAN transfer due to SCSI reservation conflict error inevitably fails and falls back to NBD transfer. 25
  • 26. VDDK Control with Fork –cont. Main process Provide the same interface VddkController with Vddk/Vmdk Manager VddkWorker(parent) Manage processes and communicate with child Forked process Wrapper of Vddk/Vmdk VddkWorker(child) manager and communicate with parent VddkManager VmdkManager
  • 27. Multi-threaded Archive Manager • Improves performance with gziped multi- stream dump/restore/check/merge operations Archive Managers Interface of archive accesses specialized for each command Archive IO Managers Multi-threaded/Single-threaded stream access for each archive file DataReader, DataWriter Worker thread and its controller for Gzip compresson/decompression Queue Thread-safe FIFO 27
  • 28. Restore/Check with MultiArchiveManager Archive Manager Full dump Rdiff Rdiff waiting waiting Full dump Multi Archive Manager Rdiff Rdiff
  • 29. Restore with SAN • Problem in restore with SAN – Failed auto-allocation for thin vmdk – Auto-allocation is too slow for thick vmdk – There is no efficient allocation API. • If zero-block restore with NBD is faster, use it as allocation method –  not fast…
  • 30. Future Work • Improve parallelism – Solving SCSI reservation conflict problem – Multi-threaded compression • Restore with SAN – Depends on VDDK’s efficient block allocation API 30