IO while taking a disks-only snapshot
            
            
            
                21 Nov
                
                    2022
                
            
            
                21 Nov
                
                '22
                
            
            
            
        
    
                9:48 p.m.
            
        Hi, Assume I'm running a VM with the qemu driver in libvirt, with multiple disks, with no guest agent. Now if I take a disks-only snapshot of that active VM. I see that under the hood, libvirt is issuing a qmp transaction with blockdev-snapshot command per each disk. I also see that qmp_transaction in qemu is draining all disks IO before performing the transaction (calling bdrv_drain_all). But once the transaction has started, is it possible that any incoming guest disk IO will be processed before the transaction completes? Assuming that's not possible, how is this "block disk IO while running the transaction" is enforced? Is it the call to GLOBAL_STATE_CODE() at the beginning of qemu's qmp_transaction(...)? Thanks, Or I
        1079
        
      
          Age (days ago)
        
      
        1079
        
    
          Last active (days ago)
        
        
        
        0 comments
    
    
        
        1 participants
    
    
    
    
    
    
    
    
    participants (1)
- 
                
Or Ozeri