1e2ec4119SJohn Snow--- Preparing image & VM --- 2e2ec4119SJohn Snow 3e2ec4119SJohn Snow--- 1st Boot (Establish Baseline Image) --- 4e2ec4119SJohn Snow 5e2ec4119SJohn Snow 6e2ec4119SJohn Snow--- Adding bitmaps Small, Medium, Large, and Transient --- 7e2ec4119SJohn Snow 8e2ec4119SJohn Snow{"execute": "block-dirty-bitmap-add", "arguments": {"granularity": 32768, "name": "Small", "node": "drive0", "persistent": true}} 9e2ec4119SJohn Snow{"return": {}} 10e2ec4119SJohn Snow{"execute": "block-dirty-bitmap-add", "arguments": {"name": "Medium", "node": "drive0", "persistent": true}} 11e2ec4119SJohn Snow{"return": {}} 12e2ec4119SJohn Snow{"execute": "block-dirty-bitmap-add", "arguments": {"granularity": 131072, "name": "Large", "node": "drive0", "persistent": true}} 13e2ec4119SJohn Snow{"return": {}} 14e2ec4119SJohn Snow{"execute": "block-dirty-bitmap-add", "arguments": {"name": "Transient", "node": "drive0", "persistent": false}} 15e2ec4119SJohn Snow{"return": {}} 16e2ec4119SJohn Snow--- Forcing flush of bitmaps to disk --- 17e2ec4119SJohn Snow 18e2ec4119SJohn Snow{ 19e2ec4119SJohn Snow "bitmaps": { 20e2ec4119SJohn Snow "drive0": [ 21e2ec4119SJohn Snow { 22e2ec4119SJohn Snow "busy": false, 23e2ec4119SJohn Snow "count": 0, 24e2ec4119SJohn Snow "granularity": 65536, 25e2ec4119SJohn Snow "name": "Transient", 26e2ec4119SJohn Snow "persistent": false, 27*81cbfd50SDaniel P. Berrangé "recording": true 28e2ec4119SJohn Snow }, 29e2ec4119SJohn Snow { 30e2ec4119SJohn Snow "busy": false, 31e2ec4119SJohn Snow "count": 0, 32e2ec4119SJohn Snow "granularity": 131072, 33e2ec4119SJohn Snow "name": "Large", 34e2ec4119SJohn Snow "persistent": true, 35*81cbfd50SDaniel P. Berrangé "recording": true 36e2ec4119SJohn Snow }, 37e2ec4119SJohn Snow { 38e2ec4119SJohn Snow "busy": false, 39e2ec4119SJohn Snow "count": 0, 40e2ec4119SJohn Snow "granularity": 65536, 41e2ec4119SJohn Snow "name": "Medium", 42e2ec4119SJohn Snow "persistent": true, 43*81cbfd50SDaniel P. Berrangé "recording": true 44e2ec4119SJohn Snow }, 45e2ec4119SJohn Snow { 46e2ec4119SJohn Snow "busy": false, 47e2ec4119SJohn Snow "count": 0, 48e2ec4119SJohn Snow "granularity": 32768, 49e2ec4119SJohn Snow "name": "Small", 50e2ec4119SJohn Snow "persistent": true, 51*81cbfd50SDaniel P. Berrangé "recording": true 52e2ec4119SJohn Snow } 53e2ec4119SJohn Snow ] 54e2ec4119SJohn Snow } 55e2ec4119SJohn Snow} 56e2ec4119SJohn Snow--- 2nd Boot (Grow Image) --- 57e2ec4119SJohn Snow 58e2ec4119SJohn Snow{ 59e2ec4119SJohn Snow "bitmaps": { 60e2ec4119SJohn Snow "drive0": [ 61e2ec4119SJohn Snow { 62e2ec4119SJohn Snow "busy": false, 63e2ec4119SJohn Snow "count": 0, 64e2ec4119SJohn Snow "granularity": 32768, 65e2ec4119SJohn Snow "name": "Small", 66e2ec4119SJohn Snow "persistent": true, 67*81cbfd50SDaniel P. Berrangé "recording": true 68e2ec4119SJohn Snow }, 69e2ec4119SJohn Snow { 70e2ec4119SJohn Snow "busy": false, 71e2ec4119SJohn Snow "count": 0, 72e2ec4119SJohn Snow "granularity": 65536, 73e2ec4119SJohn Snow "name": "Medium", 74e2ec4119SJohn Snow "persistent": true, 75*81cbfd50SDaniel P. Berrangé "recording": true 76e2ec4119SJohn Snow }, 77e2ec4119SJohn Snow { 78e2ec4119SJohn Snow "busy": false, 79e2ec4119SJohn Snow "count": 0, 80e2ec4119SJohn Snow "granularity": 131072, 81e2ec4119SJohn Snow "name": "Large", 82e2ec4119SJohn Snow "persistent": true, 83*81cbfd50SDaniel P. Berrangé "recording": true 84e2ec4119SJohn Snow } 85e2ec4119SJohn Snow ] 86e2ec4119SJohn Snow } 87e2ec4119SJohn Snow} 88e2ec4119SJohn Snow--- Adding new bitmap, growing image, and adding 2nd new bitmap --- 89e2ec4119SJohn Snow{"execute": "block-dirty-bitmap-add", "arguments": {"name": "New", "node": "drive0", "persistent": true}} 90e2ec4119SJohn Snow{"return": {}} 91e2ec4119SJohn Snow{"execute": "human-monitor-command", "arguments": {"command-line": "block_resize drive0 70G"}} 92e2ec4119SJohn Snow{"return": ""} 93e2ec4119SJohn Snow{"execute": "block-dirty-bitmap-add", "arguments": {"name": "Newtwo", "node": "drive0", "persistent": true}} 94e2ec4119SJohn Snow{"return": {}} 95e2ec4119SJohn Snow{ 96e2ec4119SJohn Snow "bitmaps": { 97e2ec4119SJohn Snow "drive0": [ 98e2ec4119SJohn Snow { 99e2ec4119SJohn Snow "busy": false, 100e2ec4119SJohn Snow "count": 0, 101e2ec4119SJohn Snow "granularity": 65536, 102e2ec4119SJohn Snow "name": "Newtwo", 103e2ec4119SJohn Snow "persistent": true, 104*81cbfd50SDaniel P. Berrangé "recording": true 105e2ec4119SJohn Snow }, 106e2ec4119SJohn Snow { 107e2ec4119SJohn Snow "busy": false, 108e2ec4119SJohn Snow "count": 0, 109e2ec4119SJohn Snow "granularity": 65536, 110e2ec4119SJohn Snow "name": "New", 111e2ec4119SJohn Snow "persistent": true, 112*81cbfd50SDaniel P. Berrangé "recording": true 113e2ec4119SJohn Snow }, 114e2ec4119SJohn Snow { 115e2ec4119SJohn Snow "busy": false, 116e2ec4119SJohn Snow "count": 0, 117e2ec4119SJohn Snow "granularity": 32768, 118e2ec4119SJohn Snow "name": "Small", 119e2ec4119SJohn Snow "persistent": true, 120*81cbfd50SDaniel P. Berrangé "recording": true 121e2ec4119SJohn Snow }, 122e2ec4119SJohn Snow { 123e2ec4119SJohn Snow "busy": false, 124e2ec4119SJohn Snow "count": 0, 125e2ec4119SJohn Snow "granularity": 65536, 126e2ec4119SJohn Snow "name": "Medium", 127e2ec4119SJohn Snow "persistent": true, 128*81cbfd50SDaniel P. Berrangé "recording": true 129e2ec4119SJohn Snow }, 130e2ec4119SJohn Snow { 131e2ec4119SJohn Snow "busy": false, 132e2ec4119SJohn Snow "count": 0, 133e2ec4119SJohn Snow "granularity": 131072, 134e2ec4119SJohn Snow "name": "Large", 135e2ec4119SJohn Snow "persistent": true, 136*81cbfd50SDaniel P. Berrangé "recording": true 137e2ec4119SJohn Snow } 138e2ec4119SJohn Snow ] 139e2ec4119SJohn Snow } 140e2ec4119SJohn Snow} 141e2ec4119SJohn Snow--- Forcing flush of bitmaps to disk --- 142e2ec4119SJohn Snow 143e2ec4119SJohn Snow--- 3rd Boot (Shrink Image) --- 144e2ec4119SJohn Snow 145e2ec4119SJohn Snow{ 146e2ec4119SJohn Snow "bitmaps": { 147e2ec4119SJohn Snow "drive0": [ 148e2ec4119SJohn Snow { 149e2ec4119SJohn Snow "busy": false, 150e2ec4119SJohn Snow "count": 0, 151e2ec4119SJohn Snow "granularity": 65536, 152e2ec4119SJohn Snow "name": "New", 153e2ec4119SJohn Snow "persistent": true, 154*81cbfd50SDaniel P. Berrangé "recording": true 155e2ec4119SJohn Snow }, 156e2ec4119SJohn Snow { 157e2ec4119SJohn Snow "busy": false, 158e2ec4119SJohn Snow "count": 0, 159e2ec4119SJohn Snow "granularity": 65536, 160e2ec4119SJohn Snow "name": "Newtwo", 161e2ec4119SJohn Snow "persistent": true, 162*81cbfd50SDaniel P. Berrangé "recording": true 163e2ec4119SJohn Snow }, 164e2ec4119SJohn Snow { 165e2ec4119SJohn Snow "busy": false, 166e2ec4119SJohn Snow "count": 0, 167e2ec4119SJohn Snow "granularity": 32768, 168e2ec4119SJohn Snow "name": "Small", 169e2ec4119SJohn Snow "persistent": true, 170*81cbfd50SDaniel P. Berrangé "recording": true 171e2ec4119SJohn Snow }, 172e2ec4119SJohn Snow { 173e2ec4119SJohn Snow "busy": false, 174e2ec4119SJohn Snow "count": 0, 175e2ec4119SJohn Snow "granularity": 65536, 176e2ec4119SJohn Snow "name": "Medium", 177e2ec4119SJohn Snow "persistent": true, 178*81cbfd50SDaniel P. Berrangé "recording": true 179e2ec4119SJohn Snow }, 180e2ec4119SJohn Snow { 181e2ec4119SJohn Snow "busy": false, 182e2ec4119SJohn Snow "count": 0, 183e2ec4119SJohn Snow "granularity": 131072, 184e2ec4119SJohn Snow "name": "Large", 185e2ec4119SJohn Snow "persistent": true, 186*81cbfd50SDaniel P. Berrangé "recording": true 187e2ec4119SJohn Snow } 188e2ec4119SJohn Snow ] 189e2ec4119SJohn Snow } 190e2ec4119SJohn Snow} 191e2ec4119SJohn Snow--- Adding "NewB" bitmap, removing "New" bitmap --- 192e2ec4119SJohn Snow{"execute": "block-dirty-bitmap-add", "arguments": {"name": "NewB", "node": "drive0", "persistent": true}} 193e2ec4119SJohn Snow{"return": {}} 194e2ec4119SJohn Snow{"execute": "block-dirty-bitmap-remove", "arguments": {"name": "New", "node": "drive0"}} 195e2ec4119SJohn Snow{"return": {}} 196e2ec4119SJohn Snow--- Truncating image --- 197e2ec4119SJohn Snow 198e2ec4119SJohn Snow{"execute": "human-monitor-command", "arguments": {"command-line": "block_resize drive0 50G"}} 199e2ec4119SJohn Snow{"return": ""} 200e2ec4119SJohn Snow--- Adding "NewC" bitmap, removing "NewTwo" bitmap --- 201e2ec4119SJohn Snow{"execute": "block-dirty-bitmap-add", "arguments": {"name": "NewC", "node": "drive0", "persistent": true}} 202e2ec4119SJohn Snow{"return": {}} 203e2ec4119SJohn Snow{"execute": "block-dirty-bitmap-remove", "arguments": {"name": "Newtwo", "node": "drive0"}} 204e2ec4119SJohn Snow{"return": {}} 205e2ec4119SJohn Snow--- Forcing flush of bitmaps to disk --- 206e2ec4119SJohn Snow 207e2ec4119SJohn Snow--- 4th Boot (Verification and Cleanup) --- 208e2ec4119SJohn Snow 209e2ec4119SJohn Snow{ 210e2ec4119SJohn Snow "bitmaps": { 211e2ec4119SJohn Snow "drive0": [ 212e2ec4119SJohn Snow { 213e2ec4119SJohn Snow "busy": false, 214e2ec4119SJohn Snow "count": 0, 215e2ec4119SJohn Snow "granularity": 65536, 216e2ec4119SJohn Snow "name": "NewB", 217e2ec4119SJohn Snow "persistent": true, 218*81cbfd50SDaniel P. Berrangé "recording": true 219e2ec4119SJohn Snow }, 220e2ec4119SJohn Snow { 221e2ec4119SJohn Snow "busy": false, 222e2ec4119SJohn Snow "count": 0, 223e2ec4119SJohn Snow "granularity": 65536, 224e2ec4119SJohn Snow "name": "NewC", 225e2ec4119SJohn Snow "persistent": true, 226*81cbfd50SDaniel P. Berrangé "recording": true 227e2ec4119SJohn Snow }, 228e2ec4119SJohn Snow { 229e2ec4119SJohn Snow "busy": false, 230e2ec4119SJohn Snow "count": 0, 231e2ec4119SJohn Snow "granularity": 32768, 232e2ec4119SJohn Snow "name": "Small", 233e2ec4119SJohn Snow "persistent": true, 234*81cbfd50SDaniel P. Berrangé "recording": true 235e2ec4119SJohn Snow }, 236e2ec4119SJohn Snow { 237e2ec4119SJohn Snow "busy": false, 238e2ec4119SJohn Snow "count": 0, 239e2ec4119SJohn Snow "granularity": 65536, 240e2ec4119SJohn Snow "name": "Medium", 241e2ec4119SJohn Snow "persistent": true, 242*81cbfd50SDaniel P. Berrangé "recording": true 243e2ec4119SJohn Snow }, 244e2ec4119SJohn Snow { 245e2ec4119SJohn Snow "busy": false, 246e2ec4119SJohn Snow "count": 0, 247e2ec4119SJohn Snow "granularity": 131072, 248e2ec4119SJohn Snow "name": "Large", 249e2ec4119SJohn Snow "persistent": true, 250*81cbfd50SDaniel P. Berrangé "recording": true 251e2ec4119SJohn Snow } 252e2ec4119SJohn Snow ] 253e2ec4119SJohn Snow } 254e2ec4119SJohn Snow} 255e2ec4119SJohn Snow--- Removing all Bitmaps --- 256e2ec4119SJohn Snow 257e2ec4119SJohn Snow{"execute": "block-dirty-bitmap-remove", "arguments": {"name": "Small", "node": "drive0"}} 258e2ec4119SJohn Snow{"return": {}} 259e2ec4119SJohn Snow{"execute": "block-dirty-bitmap-remove", "arguments": {"name": "Medium", "node": "drive0"}} 260e2ec4119SJohn Snow{"return": {}} 261e2ec4119SJohn Snow{"execute": "block-dirty-bitmap-remove", "arguments": {"name": "Large", "node": "drive0"}} 262e2ec4119SJohn Snow{"return": {}} 263e2ec4119SJohn Snow{"execute": "block-dirty-bitmap-remove", "arguments": {"name": "NewB", "node": "drive0"}} 264e2ec4119SJohn Snow{"return": {}} 265e2ec4119SJohn Snow{"execute": "block-dirty-bitmap-remove", "arguments": {"name": "NewC", "node": "drive0"}} 266e2ec4119SJohn Snow{"return": {}} 267e2ec4119SJohn Snow{ 268e2ec4119SJohn Snow "bitmaps": { 269e2ec4119SJohn Snow "drive0": [] 270e2ec4119SJohn Snow } 271e2ec4119SJohn Snow} 272e2ec4119SJohn Snow 273e2ec4119SJohn Snow--- Done --- 274