Simplified distributed block storage with strong consistency, like in Ceph
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

88 lines
3.1 KiB

  1. Index: qemu/qapi/block-core.json
  2. ===================================================================
  3. --- qemu.orig/qapi/block-core.json 2020-11-07 22:57:38.932613674 +0000
  4. +++ qemu.orig/qapi/block-core.json 2020-11-07 22:59:49.890722862 +0000
  5. @@ -2907,7 +2907,7 @@
  6. 'nbd', 'nfs', 'null-aio', 'null-co', 'nvme', 'parallels', 'qcow',
  7. 'qcow2', 'qed', 'quorum', 'raw', 'rbd',
  8. { 'name': 'replication', 'if': 'defined(CONFIG_REPLICATION)' },
  9. - 'sheepdog',
  10. + 'sheepdog', 'vitastor',
  11. 'ssh', 'throttle', 'vdi', 'vhdx', 'vmdk', 'vpc', 'vvfat', 'vxhs' ] }
  12. ##
  13. @@ -3725,6 +3725,28 @@
  14. '*tag': 'str' } }
  15. ##
  16. +# @BlockdevOptionsVitastor:
  17. +#
  18. +# Driver specific block device options for vitastor
  19. +#
  20. +# @image: Image name
  21. +# @inode: Inode number
  22. +# @pool: Pool ID
  23. +# @size: Desired image size in bytes
  24. +# @config_path: Path to Vitastor configuration
  25. +# @etcd_address: etcd connection address(es)
  26. +# @etcd_prefix: etcd key/value prefix
  27. +##
  28. +{ 'struct': 'BlockdevOptionsVitastor',
  29. + 'data': { '*inode': 'uint64',
  30. + '*pool': 'uint64',
  31. + '*size': 'uint64',
  32. + '*image': 'str',
  33. + '*config_path': 'str',
  34. + '*etcd_address': 'str',
  35. + '*etcd_prefix': 'str' } }
  36. +
  37. +##
  38. # @ReplicationMode:
  39. #
  40. # An enumeration of replication modes.
  41. @@ -4084,6 +4102,7 @@
  42. 'replication': { 'type': 'BlockdevOptionsReplication',
  43. 'if': 'defined(CONFIG_REPLICATION)' },
  44. 'sheepdog': 'BlockdevOptionsSheepdog',
  45. + 'vitastor': 'BlockdevOptionsVitastor',
  46. 'ssh': 'BlockdevOptionsSsh',
  47. 'throttle': 'BlockdevOptionsThrottle',
  48. 'vdi': 'BlockdevOptionsGenericFormat',
  49. @@ -4461,6 +4480,17 @@
  50. '*cluster-size' : 'size' } }
  51. ##
  52. +# @BlockdevCreateOptionsVitastor:
  53. +#
  54. +# Driver specific image creation options for Vitastor.
  55. +#
  56. +# @size: Size of the virtual disk in bytes
  57. +##
  58. +{ 'struct': 'BlockdevCreateOptionsVitastor',
  59. + 'data': { 'location': 'BlockdevOptionsVitastor',
  60. + 'size': 'size' } }
  61. +
  62. +##
  63. # @BlockdevVmdkSubformat:
  64. #
  65. # Subformat options for VMDK images
  66. @@ -4722,6 +4752,7 @@
  67. 'qed': 'BlockdevCreateOptionsQed',
  68. 'rbd': 'BlockdevCreateOptionsRbd',
  69. 'sheepdog': 'BlockdevCreateOptionsSheepdog',
  70. + 'vitastor': 'BlockdevCreateOptionsVitastor',
  71. 'ssh': 'BlockdevCreateOptionsSsh',
  72. 'vdi': 'BlockdevCreateOptionsVdi',
  73. 'vhdx': 'BlockdevCreateOptionsVhdx',
  74. Index: qemu/scripts/modules/module_block.py
  75. ===================================================================
  76. --- qemu.orig/scripts/modules/module_block.py 2020-11-07 22:57:38.936613739 +0000
  77. +++ qemu/scripts/modules/module_block.py 2020-11-07 22:59:49.890722862 +0000
  78. @@ -86,6 +86,7 @@ def print_bottom(fheader):
  79. output_file = sys.argv[1]
  80. with open(output_file, 'w') as fheader:
  81. print_top(fheader)
  82. + add_module(fheader, "vitastor", "vitastor", "vitastor")
  83. for filename in sys.argv[2:]:
  84. if os.path.isfile(filename):