Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor(xapi/VDI_exportContent): can export from NBD #6716

Merged
merged 13 commits into from
Mar 30, 2023
Merged

Conversation

fbeauchamp
Copy link
Collaborator

@fbeauchamp fbeauchamp commented Mar 9, 2023

Goal

use NBD wherever it's possible . Today, NBD is only used for delta backup on vhd block storage. In this case, the blocks are read in parallel, but this reading process is completly separated from other reading neeeding for other remotes or for continuous replication.

Impacts

NBD is used for

  • export vhd
  • export vmdk
  • export ova
  • export raw disk
  • delta backup, vhd file or blocks , full disk backup or delta disk backup
  • continuous replication
  • no more constrained by the 24 maximum task duration, especially when doing a full disk export

It is not used for

  • xva export
  • full VM backup
  • disaster recovery

NBD block reading is done sequentially. It reads block only once even with multiple target of a backup job.

NBD is enabled as a xapi option : if a NBD network is present and is accessible between the VM and XO, it will be used.

NBD server is choosen at random between the available one. That means that if the VM use a shared storage, all the host of the pool can be used.

No more visible task during export , need to implement the new task system + UX

futures

  • implement retry when reading a block fail ( thus allowing us to not fail a backup when there is a short network outage between host and XO )
  • implement resume / global retry of a backup (for example at the end of a backup job, retry all the failed VMs before cleanVM)
  • create and handle task manually

review by commit

Check list

Check if done, if not relevant leave unchecked.

  • PR reference the relevant issue (e.g. Fixes #007 or See xoa-support#42)
  • if UI changes, a screenshot has been added to the PR
  • documentation updated
  • CHANGELOG.unreleased.md:
    • enhancement/bug fix entry added
    • list of packages to release updated (${name} v${new version})
  • I have tested added/updated features (and impacted code)

Process

  1. create a PR as soon as possible
  2. mark it as WiP: (Work in Progress) if not ready to be merged
  3. when you want a review, add a reviewer (and only one)
  4. if necessary, update your PR, and re- add a reviewer

From the Four Agreements:

  1. Be impeccable with your word.
  2. Don't take anything personally.
  3. Don't make assumptions.
  4. Always do your best.

@fbeauchamp fbeauchamp force-pushed the feat_nbd_vhd branch 6 times, most recently from 7c6bb83 to de3ff25 Compare March 14, 2023 14:14
@fbeauchamp fbeauchamp changed the title refactor(vhd-lib): read vhd from stream and nbd, create vhd directory refactor(vhd-lib): read vhd from stream and nbd Mar 14, 2023
@fbeauchamp fbeauchamp force-pushed the feat_nbd_vhd branch 5 times, most recently from 35b4ee2 to 9d6ec88 Compare March 15, 2023 14:58
@fbeauchamp fbeauchamp marked this pull request as ready for review March 16, 2023 13:11
@fbeauchamp fbeauchamp force-pushed the feat_nbd_vhd branch 3 times, most recently from d80ea0e to 692e03f Compare March 17, 2023 15:38
@julien-f julien-f changed the title refactor(vhd-lib): read vhd from stream and nbd refactor(xapi/VDI_exportContent): can export from NBD Mar 30, 2023
@julien-f julien-f merged commit a4d1d41 into master Mar 30, 2023
@julien-f julien-f deleted the feat_nbd_vhd branch March 30, 2023 16:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants