Agenda for today's call
by abaron@redhat.com
Hi all,
I would like to discuss the following on today's call:
1. Gerrit vs. mailing list
2. mandatory unittest per patch
3. pep8
4. ??
If you have anything else you'd like to discuss, please reply to this email.
Regards,
Ayal.
11 years, 10 months
Fatal error when migrate the VM with disk on iscsi data center
by shuming@linux.vnet.ibm.com
Hi,
I am testing the VM migration in oVirt engine 3.1 bteta release and
successfully did the migration test on NFS date center. However, the
test of VM migration on iSCSI data center failed.
I dumped the error and warning segments from the vdsm logs on both the
source and destination host. Please ignore the time stamp out of sync
between the two hosts.
_
_*The vdsm log segment from the source host:*
66-4da5-8310-6dcc970e5367`::migration downtime thread exiting
Thread-115166::ERROR::2012-07-25
23:18:55,953::vm::176::vm.Vm::(_recover)
vmId=`11e06222-2d66-4da5-8310-6dcc970e5367`::operation failed: Failed to
connect to remote libvirt URI qemu+tcp://9.181.129.110/system
Dummy-115148::DEBUG::2012-07-25
23:18:55,981::__init__::1249::Storage.Misc.excCmd::(_log) 'dd
if=/rhev/data-center/0b9a4ea4-d487-11e1-b614-5254001498c4/mastersd/dom_md/inbox
iflag=direct,fullblock count=1 bs=1024000' (cwd None)
Thread-115166::ERROR::2012-07-25 23:18:56,028::vm::240::vm.Vm::(run)
vmId=`11e06222-2d66-4da5-8310-6dcc970e5367`::Failed to migrate
Traceback (most recent call last):
File "/usr/share/vdsm/vm.py", line 223, in run
self._startUnderlyingMigration()
File "/usr/share/vdsm/libvirtvm.py", line 451, in
_startUnderlyingMigration
None, maxBandwidth)
File "/usr/share/vdsm/libvirtvm.py", line 491, in f
ret = attr(*args, **kwargs)
File "/usr/lib/python2.7/site-packages/vdsm/libvirtconnection.py",
line 82, in wrapper
ret = f(*args, **kwargs)
File "/usr/lib64/python2.7/site-packages/libvirt.py", line 1034, in
migrateToURI2
if ret == -1: raise libvirtError ('virDomainMigrateToURI2()
failed', dom=self)
libvirtError: operation failed: Failed to connect to remote libvirt URI
qemu+tcp://9.181.129.110/system
*The vdsm log segment from the destination host:*
Thread-1577::INFO::2012-07-25
23:19:50,407::API::601::vds::(_getNetworkIp) network None: using 0
Thread-1577::INFO::2012-07-25 23:19:50,407::API::228::vds::(create)
vmContainerLock acquired by vm 11e06222-2d66-4da5-8310-6dcc970e5367
Thread-1578::DEBUG::2012-07-25
23:19:50,411::vm::564::vm.Vm::(_startUnderlyingVm)
vmId=`11e06222-2d66-4da5-8310-6dcc970e5367`::Start
Thread-1577::DEBUG::2012-07-25 23:19:50,411::API::244::vds::(create)
Total desktops after creation of 11e06222-2d66-4da5-8310-6dcc970e5367 is 1
Thread-1578::DEBUG::2012-07-25
23:19:50,411::vm::568::vm.Vm::(_startUnderlyingVm)
vmId=`11e06222-2d66-4da5-8310-6dcc970e5367`::_ongoingCreations acquired
Thread-1577::DEBUG::2012-07-25
23:19:50,412::libvirtvm::2438::vm.Vm::(waitForMigrationDestinationPrepare)
vmId=`11e06222-2d66-4da5-8310-6dcc970e5367`::migration destination:
waiting 36s for path preparation
Thread-1578::INFO::2012-07-25
23:19:50,412::libvirtvm::1285::vm.Vm::(_run)
vmId=`11e06222-2d66-4da5-8310-6dcc970e5367`::VM wrapper has started
Thread-1578::WARNING::2012-07-25
23:19:50,413::vm::398::vm.Vm::(getConfDevices)
vmId=`11e06222-2d66-4da5-8310-6dcc970e5367`::Unknown type found, device:
'{'device': 'unix', 'alias': 'channel0', 'type': 'channel', 'address':
{'bus': '0', 'controller': '0', 'type': 'virtio-serial', 'port': '1'}}'
found
Thread-1578::ERROR::2012-07-25
23:24:50,484::vm::604::vm.Vm::(_startUnderlyingVm)
vmId=`11e06222-2d66-4da5-8310-6dcc970e5367`::The vm start process failed
Traceback (most recent call last):
File "/usr/share/vdsm/vm.py", line 584, in _startUnderlyingVm
self._waitForIncomingMigrationFinish()
File "/usr/share/vdsm/libvirtvm.py", line 1572, in
_waitForIncomingMigrationFinish
self._connection.lookupByUUIDString(self.id),
File "/usr/lib/python2.7/site-packages/vdsm/libvirtconnection.py",
line 82, in wrapper
ret = f(*args, **kwargs)
File "/usr/lib64/python2.7/site-packages/libvirt.py", line 2608, in
lookupByUUIDString
if ret is None:raise libvirtError('virDomainLookupByUUIDString()
failed', conn=self)
libvirtError: Domain not found: no domain with matching uuid
'11e06222-2d66-4da5-8310-6dcc970e5367' - Timed out (did not receive
success event)
Thread-1578::DEBUG::2012-07-25
23:24:50,485::vm::920::vm.Vm::(setDownStatus)
vmId=`11e06222-2d66-4da5-8310-6dcc970e5367`::Changed state to Down:
Domain not found: no domain with matching uuid '11e0622
Any idea?
--
Shu Ming <shuming(a)linux.vnet.ibm.com>
IBM China Systems and Technology Laboratory
11 years, 10 months
Adding a hook for VDSM
by Itzik Brown
Hi,
I want to add a hook for VDSM.
Where should I add the hook's name so the directory for the hook will be created during installation?
Thanks,
Itzik
11 years, 10 months
Jenkins and Gerrit.
by robert@middleswarth.net
I have setup patch review on Jenkins.info for newly submitted patches
and it seems to be working pretty well over all but last night well
tweaking the process I broken it for a few min but that was long enough
that about 50 jobs were marked -1 I will be fixing that today by
rerunning the jobs. I am sorry if one of your patches was dinged and it
should be fixed by this time tomorrow.
--
Thanks
Robert Middleswarth
@rmiddle (twitter/IRC)
11 years, 10 months
Avoid testStressTest Failing in Jenkins VDSM Unit Tests Job
by zhshzhou@linux.vnet.ibm.com
Hi all,
Recently the oVirt Jenkins runs unit test for every new patch set in
Gerrit. There are a lot of new patch sets every day, so the Jenkins may
run the unit tests in parallel. I notice that most of the unit tests can
be run in parallel except testStressTest. testStressTest creates lots of
threads nearly to the system limit, so if we run two or more
testStressTest, it will fail, giving false positives.
So I suggest the oVirt Jenkins run most of the tests in parellel, but
run testStressTest exlusively. With the help of the Exclusion-Plugin, it
its possible to configure Jenkins to run some steps in parellel while
some steps exclusive in one job.
Firstly, add a resource with the help of Exclusion-Plugin. Give a
meaningful name to that resource, and assign the resource to this Job.
Secondly, add a build step of Execute Shell, in this step, run all the
tests other than testStressTest. So the shell script can be as follow.
cd tests
NOSE_EXCLUDE="testStressTest" \
./run_tests_local.sh \
--with-xunit --xunit-file=nosetests0.xml \
*.py
Then add a build step of Critical Block Start.
Then add a build step of Execute Shell, in this step, only run
testStressTest as follow.
cd tests
./run_tests_local.sh -m testStressTest \
--with-xunit --xunit-file=nosetests1.xml \
resourceManagerTests.py
Then add a build step of Critical BlockEnd.
At last, in post-build actions, in the Publish Test Result Report
section, modify the test report XMLs to "tests/nosetests*.xml". Jenkins
will merge the test reports.
Some patch sets are marked as verify failure by oVirt Jenkins. Most of
them fails in testStressTest. I hope this can help the oVirt Jenkins a
little bit.
--
Thanks and best regards!
Zhou Zheng Sheng / 周征晟
E-mail: zhshzhou(a)linux.vnet.ibm.com
Telephone: 86-10-82454397
11 years, 10 months
Using vdsm hook to exploit gluster backend of qemu
by deepakcs@linux.vnet.ibm.com
Hello,
Recently there were patches posted in qemu-devel to support gluster
as a block backend for qemu.
This introduced new way of specifying drive location to qemu as ...
-drive file=gluster:<volumefile>:<image name>
where...
volumefile is the gluster volume file name ( say gluster volume is
pre-configured on the host )
image name is the name of the image file on the gluster mount point
I wrote a vdsm standalone script using SHAREDFS ( which maps to PosixFs
) taking cues from http://www.ovirt.org/wiki/Vdsm_Standalone
The conndict passed to connectStorageServer is as below...
[dict(id=1, connection="kvmfs01-hs22:dpkvol", vfs_type="glusterfs",
mnt_options="")]
Here note that 'dpkvol' is the name of the gluster volume
I and am able to create and invoke a VM backed by a image file residing
on gluster mount.
But since this is SHAREDFS way, the qemu -drive cmdline generated via
VDSM is ...
-drive file=/rhev/datacentre/mnt/.... -- which eventually softlinks to
the image file on the gluster mount point.
I was looking to write a vdsm hook to be able to change the above to ....
-drive file=gluster:<volumefile>:<image name>
which means I would need access to some of the conndict params inside
the hook, esp. the 'connection' to extract the volume name.
1) In looking at the current VDSM code, i don't see a way for the hook
to know anything abt the storage domain setup. So the only
way is to have the user pass a custom param which provides the path to
the volumefile & image and use it in the hook. Is there
a better way ? Can i use the vdsm gluster plugin support inside the hook
to determine the volfile from the volname, assuming I
only take the volname as the custom param, and determine imagename from
the existing <source file = ..> tag ( basename is the
image name). Wouldn't it be better to provide a way for hooks to access
( readonly) storage domain parameters, so that they can
use that do implement the hook logic in a more saner way ?
2) In talking to Eduardo, it seems there are discussion going on to see
how prepareVolumePath and prepareImage could be exploited
to fit gluster ( and in future other types) based images. I am not very
clear on the image and volume code of vdsm, frankly its very
complex and hard to understand due to lack of comments.
I would appreciate if someone can guide me on what is the best way to
achive my goal (-drive file=gluster:<volumefile>:<image name>)
here. Any short term solutions if not perfect solution are also
appreciated, so that I can atleast have a working setup where I just
run my VDSM standaloen script and my qemu cmdline using gluster:... is
generated.
Currently I am using <qemu:commandline> tag facility of libvirt to
inject the needed qemu options and hardcoding the volname, imagename
but i would like to do this based on the conndict passed by the user
when creating SHAREDFS domain.
thanx,
deepak
11 years, 10 months
Error building RPM
by deepakcs@linux.vnet.ibm.com
Hello,
I am creating a new hook for qemu cmdline support.
Facing the below issue :
Checking for unpackaged file(s): /usr/lib/rpm/check-files
/root/rpmbuild/BUILDROOT/vdsm-4.10.0-0.255.gitc80d988.fc16.x86_64
error: Installed (but unpackaged) file(s) found:
/usr/libexec/vdsm/hooks/before_vm_start/50_qemucmdline
RPM build errors:
Installed (but unpackaged) file(s) found:
/usr/libexec/vdsm/hooks/before_vm_start/50_qemucmdline
make: *** [rpm] Error 1
I am not a RPM expert, so looking for suggestions.
I followed the steps that are done for faqemu and vhostmd hooks which
are shipped today.
But its not working.
============================================================
Changes I made..
diff --git a/configure.ac b/configure.ac
index ec35a49..519ba88 100644
--- a/configure.ac
+++ b/configure.ac
@@ -199,6 +199,7 @@ AC_OUTPUT([
vdsm_hooks/pincpu/Makefile
vdsm_hooks/promisc/Makefile
vdsm_hooks/qos/Makefile
+ vdsm_hooks/qemucmdline/Makefile
vdsm_hooks/scratchpad/Makefile
vdsm_hooks/smartcard/Makefile
vdsm_hooks/smbios/Makefile
diff --git a/vdsm.spec.in b/vdsm.spec.in
index 60f49ff..3a24193 100644
--- a/vdsm.spec.in
+++ b/vdsm.spec.in
@@ -260,6 +260,16 @@ BuildArch: noarch
VDSM promiscuous mode let user define a VM interface that will capture
all network traffic.
+%package hook-qemucmdline
+Summary: QEMU cmdline hook for VDSM
+BuildArch: noarch
+Requires: vdsm
+
+%description hook-qemucmdline
+Provides support for injecting QEMU cmdline via VDSM hook.
+It exploits libvirt's qemu:commandline facility available in the
+qemu xml namespace.
+
%package hook-qos
Summary: QoS network in/out traffic support for VDSM
BuildArch: noarch
@@ -773,6 +783,11 @@ exit 0
%attr (755,vdsm,kvm)
%{_libexecdir}/%{vdsm_name}/hooks/after_vm_start/50_promisc
%attr (755,vdsm,kvm)
%{_libexecdir}/%{vdsm_name}/hooks/before_vm_destroy/50_promisc
+%files hook-qemucmdline
+%defattr(-, vdsm, kvm, -)
+%doc COPYING
+%attr (755,vdsm,kvm)
%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_qemucmdline
+
%files hook-qos
%defattr(-, vdsm, kvm, -)
%attr (755,vdsm,kvm)
%{_libexecdir}/%{vdsm_name}/hooks/before_vm_start/50_qos
diff --git a/vdsm_hooks/Makefile.am b/vdsm_hooks/Makefile.am
index 091cd73..e6a8280 100644
--- a/vdsm_hooks/Makefile.am
+++ b/vdsm_hooks/Makefile.am
@@ -18,7 +18,7 @@
# Refer to the README and COPYING files for full details of the license
#
-SUBDIRS = faqemu vhostmd
+SUBDIRS = faqemu vhostmd qemucmdline
include $(top_srcdir)/build-aux/Makefile.subs
diff --git a/vdsm_hooks/qemucmdline/Makefile.am
b/vdsm_hooks/qemucmdline/Makefile.am
new file mode 100644
index 0000000..6742ff0
--- /dev/null
+++ b/vdsm_hooks/qemucmdline/Makefile.am
@@ -0,0 +1,29 @@
+#
+# Copyright 2011-2012 Red Hat, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301 USA
+#
+# Refer to the README and COPYING files for full details of the license
+#
+EXTRA_DIST = \
+ before_vm_start.py
+
+install-data-local:
+ $(MKDIR_P) $(DESTDIR)$(vdsmhooksdir)/before_vm_start
+ $(INSTALL_SCRIPT) $(srcdir)/before_vm_start.py \
+ $(DESTDIR)$(vdsmhooksdir)/before_vm_start/50_qemucmdline
+
+uninstall-local:
+ $(RM) $(DESTDIR)$(vdsmhooksdir)/before_vm_start/50_qemucmdline
11 years, 10 months
ovirt network
by lpeer@redhat.com
The following meeting has been modified:
Subject: ovirt network
Organiser: "Livnat Peer" <lpeer(a)redhat.com>
Time: 4:00:00 PM - 5:00:00 PM GMT +02:00 Jerusalem
Recurrence : Every 5 weeks on Wednesday No end date Effective 15 Aug, 2012
Invitees: engine-devel(a)ovirt.org; vdsm-devel(a)lists.fedorahosted.org; GARGYA(a)de.ibm.com; dyasny(a)redhat.com; simon(a)redhat.com
*~*~*~*~*~*~*~*~*~*
Hi All,
As discussed previously on the list, I am adding a monthly discussion on Networking in oVirt.
In this meeting we'll discuss general status of networking and features that we're missing.
Thanks, Livnat
Bridge ID: 972506565679
Dial-in information:
Reservationless-Plus Toll Free Dial-In Number (US & Canada): (800) 451-8679
Reservationless-Plus International Dial-In Number: (212) 729-5016
Conference code: 8425973915
Global Access Numbers Local:
Australia, Sydney Dial-In #: 0289852326
Austria, Vienna Dial-In #: 012534978196
Belgium, Brussels Dial-In #: 027920405
China Dial-In #: 4006205013
Denmark, Copenhagen Dial-In #: 32729215
Finland, Helsinki Dial-In #: 0923194436
France, Paris Dial-In #: 0170377140
Germany, Berlin Dial-In #: 030300190579
Ireland, Dublin Dial-In #: 014367793
Italy, Milan Dial-In #: 0236269529
Netherlands, Amsterdam Dial-In #: 0207975872
Norway, Oslo Dial-In #: 21033188
Singapore Dial-In #: 64840858
Spain, Barcelona Dial-In #: 935452328
Sweden, Stockholm Dial-In #: 0850513770
Switzerland, Geneva Dial-In #: 0225927881
United Kingdom Dial-In #: 02078970515
United Kingdom Dial-In #: 08445790676
United Kingdom, LocalCall Dial-In #: 08445790678
United States Dial-In #: 2127295016
Global Access Numbers Tollfree:
Argentina Dial-In #: 8004441016
Australia Dial-In #: 1800337169
Austria Dial-In #: 0800005898
Bahamas Dial-In #: 18002054776
Bahrain Dial-In #: 80004377
Belgium Dial-In #: 080048325
Brazil Dial-In #: 08008921002
Bulgaria Dial-In #: 008001100236
Chile Dial-In #: 800370228
Colombia Dial-In #: 018009134033
Costa Rica Dial-In #: 08000131048
Cyprus Dial-In #: 80095297
Czech Republic Dial-In #: 800700318
Denmark Dial-In #: 80887114
Dominican Republic Dial-In #: 18887512313
Estonia Dial-In #: 8000100232
Finland Dial-In #: 0800117116
France Dial-In #: 0805632867
Germany Dial-In #: 8006647541
Greece Dial-In #: 00800127562
Hong Kong Dial-In #: 800930349
Hungary Dial-In #: 0680016796
Iceland Dial-In #: 8008967
India Dial-In #: 0008006501533
Indonesia Dial-In #: 0018030179162
Ireland Dial-In #: 1800932401
Israel Dial-In #: 1809462557
Italy Dial-In #: 800985897
Jamaica Dial-In #: 18002050328
Japan Dial-In #: 0120934453
Korea (South) Dial-In #: 007986517393
Latvia Dial-In #: 80003339
Lithuania Dial-In #: 880030479
Luxembourg Dial-In #: 80026595
Malaysia Dial-In #: 1800814451
Mexico Dial-In #: 0018664590915
New Zealand Dial-In #: 0800888167
Norway Dial-In #: 80012994
Panama Dial-In #: 008002269184
Philippines Dial-In #: 180011100991
Poland Dial-In #: 008001210187
Portugal Dial-In #: 800814625
Russian Federation Dial-In #: 81080028341012
Saint Kitts and Nevis Dial-In #: 18002059252
Singapore Dial-In #: 8006162235
Slovak Republic Dial-In #: 0800001441
South Africa Dial-In #: 0800981148
Spain Dial-In #: 800300524
Sweden Dial-In #: 200896860
Switzerland Dial-In #: 800650077
Taiwan Dial-In #: 00801127141
Thailand Dial-In #: 001800656966
Trinidad and Tobago Dial-In #: 18002024615
United Arab Emirates Dial-In #: 8000650591
United Kingdom Dial-In #: 08006948057
United States Dial-In #: 8004518679
Uruguay Dial-In #: 00040190315
Venezuela Dial-In #: 08001627182
11 years, 10 months
ovirt network
by lpeer@redhat.com
The following is a new meeting request:
Subject: ovirt network
Organiser: "Livnat Peer" <lpeer(a)redhat.com>
Time: Wednesday, 15 August, 2012, 4:00:00 PM - 5:00:00 PM GMT +02:00 Jerusalem
Invitees: engine-devel(a)ovirt.org; vdsm-devel(a)lists.fedorahosted.org
*~*~*~*~*~*~*~*~*~*
Hi All,
As discussed previously on the list, I am adding a monthly discussion on Networking in oVirt.
In this meeting we'll discuss general status of networking and features that we're missing.
Thanks, Livnat
Bridge ID: 972506565679
Dial-in information:
Reservationless-Plus Toll Free Dial-In Number (US & Canada): (800) 451-8679
Reservationless-Plus International Dial-In Number: (212) 729-5016
Conference code: 8425973915
Global Access Numbers Local:
Australia, Sydney Dial-In #: 0289852326
Austria, Vienna Dial-In #: 012534978196
Belgium, Brussels Dial-In #: 027920405
China Dial-In #: 4006205013
Denmark, Copenhagen Dial-In #: 32729215
Finland, Helsinki Dial-In #: 0923194436
France, Paris Dial-In #: 0170377140
Germany, Berlin Dial-In #: 030300190579
Ireland, Dublin Dial-In #: 014367793
Italy, Milan Dial-In #: 0236269529
Netherlands, Amsterdam Dial-In #: 0207975872
Norway, Oslo Dial-In #: 21033188
Singapore Dial-In #: 64840858
Spain, Barcelona Dial-In #: 935452328
Sweden, Stockholm Dial-In #: 0850513770
Switzerland, Geneva Dial-In #: 0225927881
United Kingdom Dial-In #: 02078970515
United Kingdom Dial-In #: 08445790676
United Kingdom, LocalCall Dial-In #: 08445790678
United States Dial-In #: 2127295016
Global Access Numbers Tollfree:
Argentina Dial-In #: 8004441016
Australia Dial-In #: 1800337169
Austria Dial-In #: 0800005898
Bahamas Dial-In #: 18002054776
Bahrain Dial-In #: 80004377
Belgium Dial-In #: 080048325
Brazil Dial-In #: 08008921002
Bulgaria Dial-In #: 008001100236
Chile Dial-In #: 800370228
Colombia Dial-In #: 018009134033
Costa Rica Dial-In #: 08000131048
Cyprus Dial-In #: 80095297
Czech Republic Dial-In #: 800700318
Denmark Dial-In #: 80887114
Dominican Republic Dial-In #: 18887512313
Estonia Dial-In #: 8000100232
Finland Dial-In #: 0800117116
France Dial-In #: 0805632867
Germany Dial-In #: 8006647541
Greece Dial-In #: 00800127562
Hong Kong Dial-In #: 800930349
Hungary Dial-In #: 0680016796
Iceland Dial-In #: 8008967
India Dial-In #: 0008006501533
Indonesia Dial-In #: 0018030179162
Ireland Dial-In #: 1800932401
Israel Dial-In #: 1809462557
Italy Dial-In #: 800985897
Jamaica Dial-In #: 18002050328
Japan Dial-In #: 0120934453
Korea (South) Dial-In #: 007986517393
Latvia Dial-In #: 80003339
Lithuania Dial-In #: 880030479
Luxembourg Dial-In #: 80026595
Malaysia Dial-In #: 1800814451
Mexico Dial-In #: 0018664590915
New Zealand Dial-In #: 0800888167
Norway Dial-In #: 80012994
Panama Dial-In #: 008002269184
Philippines Dial-In #: 180011100991
Poland Dial-In #: 008001210187
Portugal Dial-In #: 800814625
Russian Federation Dial-In #: 81080028341012
Saint Kitts and Nevis Dial-In #: 18002059252
Singapore Dial-In #: 8006162235
Slovak Republic Dial-In #: 0800001441
South Africa Dial-In #: 0800981148
Spain Dial-In #: 800300524
Sweden Dial-In #: 200896860
Switzerland Dial-In #: 800650077
Taiwan Dial-In #: 00801127141
Thailand Dial-In #: 001800656966
Trinidad and Tobago Dial-In #: 18002024615
United Arab Emirates Dial-In #: 8000650591
United Kingdom Dial-In #: 08006948057
United States Dial-In #: 8004518679
Uruguay Dial-In #: 00040190315
Venezuela Dial-In #: 08001627182
11 years, 10 months
Re: [vdsm] [RFC] GlusterFS domain specific changes
by M. Mohan Kumar
> ----- Original Message -----
> > From: "M. Mohan Kumar" <mohan(a)in.ibm.com>
> > To: vdsm-devel(a)lists.fedorahosted.org
> > Sent: Wednesday, July 25, 2012 1:26:15 PM
> > Subject: [vdsm] [RFC] GlusterFS domain specific changes
> >
> >
> > We are developing a GlusterFS server translator to export block devices
> > as regular files to the client. Using block devices to serve VM images
> > gives performance improvements, since it avoids some file system
> > bottlenecks in the host kernel. Goal is to use one block device(ie file
> > at the client side) per VM image and feed this file to QEMU to get the
> > performance improvements. QEMU will talk to glusterfs server directly
> > using libgfapi.
> >
> > Currently we support only exporting Volume groups and Logical
> > Volumes. Logical volumes are exported as regular files to the client.
> >
> > In GlusterFS terminology a volume capable of exporting block devices is
> > created by specifying the 'Volume Group' (ie VG in Logical Volume
> > management). Block Device translator(BD xlator) exports this volume
> > group as a directory and LVs under it as regular files. In the gluster
> > mount point creating a file results in creating a logical volume,
> > removing a file results in removing logical volume etc.
> >
> > When a GlusterFS volume enabled with BD xlator is used, directory
> > creation in that gluster mount path is not supported because directory
> > maps to Volume groups in BD xlator. But it could be an issue in VDSM
> > environment when a new VDSM volume is created for GlusterFS domain, VDSM
> > mounts the storage domain and creates directories under that and create
> > files for vm image and other uses (like meta data).
> >
> > Is it possible to modify this behavior in VDSM to use flat structure
> > instead of creating directories and VM images and other files underneath
> > it? ie for GlusterFS domain with BD xlator VDSM will not create any
> > directory and only creates all required files under the mount point
> > directory itself.
>
Thanks Federico.
> From your description I think that the GlusterFS for block devices is
> actually more similar to what happens with the regular block domains.
> You should probably need to mount the share somewhere in the system and
> then use symlinks to point to the volumes.
>
> Create a regular block domain and look inside /rhev/data-center/mnt/blockSD,
> you'll probably get the idea of what I mean.
>
GlusterFS with BD xlator will be a hybrid of block and posix fs
domains. I will try to post more information about this model.
11 years, 10 months