During my study for my VCAP-DCD, I came to an interesting point that I’d like to share with you. During reading vSphere Design Sybex V2 by Scott Lowe and Forbies Guthrie, they came though ESXi boot disk partitions and how the boot image is loaded into memory during boot.
Long story short, ESXi base image essentially is a compressed file. When booting ESXi image, that compressed file is uncompressed into the memory producing two types of files: VMkernel Executives and Archive Files. VMkernel Executives are .gz files that aren’t shown in the list of file system files and they form the main files system. Archive files, aka. VIBs or VMware Installation Bundles (Anyone experienced with Auto Deploy knows them), contain all configurations and drivers needed for ESXi system to operate. So, what is the difference? What is the point of this post? Here it comes..
VIBs are always compressed files, mainly TGZ, V0n files, called Tardisks. They’re not uncompressed inside the memory and used, but they’re mounted as mount points in the file system as well as any other physical partition of boot disk. This makes these tardisks always read-only that read from the memory. Another thing, tardisks can’t be changed. Each new bundle/tardisk overlays the old one and the file system sees only the last one available. When the last bundle/tardisk is removed, the previous layer appears and is used by the file system. What if a modification is required for certain file on any tardisk?? ESXi VMkernel uses a “Branching Technique”.
When a modification is required, a read/write copy of the tardisk is created on a Ramdisk. Ramdisk is a container inside the memory (RAM) for that working read/write copy. Using branching technique, ESXi VMkernel uses the read/write copy instead of the original read-only one and any modification is done to this read/write copy. Unfortunately, this modifications will not persist any boot as it’s written to RAM. To come over this, a TGZ file named state.tgz is created by internal backup process to contain all of these modified files as well as all last-laid bundles (Confirmation needed for last-laid bundles part). This state.tgz file is called ESXi State Archive.
So what about that internal backup process?!
This backup process was a point of small discussion between me and Mr. Wiliam Lam (@lamw). We managed to discover that blog post of Kyle Gleed that stated that this internal backup process has four scenarios to run and backup the state.tgz file to the boot disk. It’s saved in /bootbank partition on the boot disk.
You can also run this backup process manually by using the command: autobackup.sh as stated by Mr. Lam in his blog post.
I wish I was clear and straight forward in this tricky point.
Lastly, I recommend reading vSphere Design Sybex V2.
— vSphere Design Sybex 2nd Edition by Scott Lowe, Kendrick Coleman and Forbes Guthrie.