Skip navigation

Category Archives: General

I have been working on completely revamping how CBT Tracker works. It currently works off of powershell and PowerCLI to pull VM data and grab change block tracking information. This was a hacky way to get a proof of concept on the table and more of a “It can be done”. Now that the concept phase is over and we know it’s doable and will work nicely, I am starting to use VMware’s SDK so I have direct access and do not have to jump through hoops. I also don’t have to deal with the speed issues powershell was bringing to the table.

My frustrations were some rookie mistakes that I overlooked. I was able to create snapshots perfectly fine, but the remove snapshot process was completely illuding me. I beat my head on it for probably a total of 6 hours over 2 days and it finally clicked, the more tired I got. Sometimes we tend to forget how fast computers are and how fast they process data. I was creating the snapshot and then when I would try to remove the snapshot, it would say the snapshot wouldn’t exist. My timing was off and the computer was doing it much faster than the actual create snapshot process(of course). I compare it to throwing a ball at a glass pane and getting the state of the glass pane as you throw the ball. When you review the state, the ball didn’t break the glass pane. The problem, you didn’t review the glass after the ball hit. I was looking for a snapshot that hadn’t really been created yet and so, I couldn’t remove it.

As simple as this sounds, just the mere fact of waiting for the process to finish did not enter my mind. Typically I would have done error checking and making sure the snapshot was created successfully, but I was just making sure the process of create/remove worked first, so I didn’t need error checking, I *knew* what was going to happen and suppose to happen, so I’ll be damned if I’m checking data right now. Seems my own stubborness and rookie mistake cost me a few hours that I would have love to got back 🙂

Lesson to learn? Check, and then check again, and then check some more…