VM idle time
by lhornyak@redhat.com
hi!
Related to this patch: http://gerrit.ovirt.org/#/c/7718/1/vdsm/libvirtvm.py
In _getCpuStats (libvirtvm.py) we have this logic to calculate the cpuIdle
stats['cpuIdle'] = max(0.0, 100.0 - stats['cpuUser'])
Problems:
- even with a single CPU, if you fully load the VM's vcpu, the quemu process may take a little more than 100% CPU time on a multicore host. So in this case 0.0 will be bigger than -0.1 and vdsm will report no load to engine, this is the rare case
- a more likely situation: create a multicore CPU and run a few parallel dd if=/dev/zero of=/dev/null. In this case stats['cpuUser'] will be more than 100, and again vdsm will report no load to engine
Probably this is how it should work:
- since log can be bigger than 100%, we should multiply 100 with the number of vcpus.
- If stats['cpuUser'] > 100 (* nrof(vcpus)), then the load should be the max possible: 100 (* nrof(vcpus)) not 0.
What do you think?
Laszlo
11 years, 7 months
Re: [vdsm] Change in vdsm[master]: faqemu: remove the fake /dev/kvm after vdsmd stops
by Ryan Harper
* zhshzhou(a)linux.vnet.ibm.com <zhshzhou(a)linux.vnet.ibm.com> [2012-09-12 20:59]:
> Zhou Zheng Sheng has posted comments on this change.
>
> Change subject: faqemu: remove the fake /dev/kvm after vdsmd stops
> ......................................................................
>
>
> Patch Set 1:
>
> Thanks very much Ryan. If it is a bug of Fedora and is not easily to
> fix quickly, then this patch is useful. To avoid the race, could vdsm
> create the /dev/kvm when it starts and delete when it stops? These two
> actions can be injected using hooks.
>
Replying via email as I can't quote or reply to your comment in gerrit.
*sigh*.
I have to admit I didn't notice this was a hook on vdsmd exit; as it, no
more vms will be running.
I was concerned about removing it between VM starts/stops.
I actually think removing on vdsmd shutdown is file. Looking at your
code as well, we rightly only remove /dev/kvm if it is a file, rather
than a char device.
I'll update my comments and review in gerrit.
Mark,
Thanks for finding out the udev issue; I may yet submit a fix for that;
it's likely to be a debatable issue on how udev should handle existing
files in /dev.
yes, nested is much cooler, but I have hosts which do not have
kernels new enough to run nested (see RHEL6.x) so faqemu is still
needed.
> --
> To view, visit http://gerrit.ovirt.org/7885
> To unsubscribe, visit http://gerrit.ovirt.org/settings
>
> Gerrit-MessageType: comment
> Gerrit-Change-Id: I1c1183acf90cd32444b1c26fa20aa843e4a0556d
> Gerrit-PatchSet: 1
> Gerrit-Project: vdsm
> Gerrit-Branch: master
> Gerrit-Owner: Zhou Zheng Sheng <zhshzhou(a)linux.vnet.ibm.com>
> Gerrit-Reviewer: Ryan Harper <ryanh(a)us.ibm.com>
> Gerrit-Reviewer: Yaniv Bronhaim <ybronhei(a)redhat.com>
> Gerrit-Reviewer: Zhou Zheng Sheng <zhshzhou(a)linux.vnet.ibm.com>
--
Ryan Harper
Software Engineer; Linux Technology Center
IBM Corp., Austin, Tx
ryanh(a)us.ibm.com
11 years, 7 months
oVirt Workshop Europe 2012: Call For Participation
by workshop-pc@ovirt.org
=================================================================
oVirt Workshop Europe 2012: Call For Participation
November 7-9, 2012 - Hotel Fira Palace - Barcelona, Spain
(All submissions must be received before midnight Sep 14th, 2012)
=================================================================
The oVirt Project is an open virtualization project for anyone who cares
about Linux-based KVM virtualization. Providing a feature-rich server
virtualization management system with advanced capabilities for hosts
and guests, including high availability, live migration, storage
management, system scheduler, and more. By open we mean open source &
open governance, done right.
During this workshop you’ll learn about the technical background and
direction of the oVirt project. You’ll meet the developers, and have an
opportunity to see and dive into the code right away. The workshop is
open to all who want to use, get involved with, or learn about the
comprehensive open virtualization management platform, oVirt. The
sessions cover the technical projects details, governance, getting
involved, usage, and much more. If you have any interest in an Open
Virtualization Management platform, this workshop is for you!
We are excited to announce that this oVirt Workshop will be held in
conjunction with the KVM Forum.
http://events.linuxfoundation.org/events/kvm-forum/
The KVM Forum and oVirt Workshop are co-located with the Linux
Foundation's 2012 LinuxCon Europe in Barcelona, Spain.
oVirt Workshop attendees will be able to attend KVM Forum sessions and
are eligible to attend LinuxCon Europe for a discounted rate.
http://events.linuxfoundation.org/events/kvm-forum/register
We invite you to lead part of the discussion by submitting a speaking
proposal for oVirt Workshop 2012.
http://events.linuxfoundation.org/cfp
Suggested topics:
- community use case/stories
- roadmaps
- deep dives into features/areas
- deep dives into code/debugging/tuning
- integration and extensions
- components: engine, vdsm, node, sdk/cli, reports, mom, guest agent, etc.
- subjects: network, storage, vm life cycle, scheduling & sla, gluster, etc.
- packaging, installation and distributions
- community infrastructure and services
SUBMISSION REQUIREMENTS
Abstracts due: Sep 14th, 2012
Notification: Sep 28th, 2012
Please submit a short abstract (~150 words) describing your presentation
proposal. In your submission please note how long your talk will take.
Slots vary in length up to 45 minutes. Also include in your proposal
the proposal type -- one of:
- technical talk
- end-user talk
- birds of a feather (BOF) session
Submit your proposal here:
http://events.linuxfoundation.org/cfp
You will receive a notification whether or not your presentation proposal
was accepted by Sep 14th.
END-USER COLLABORATION
One of the big challenges as developers is to know what, where and how
people actually use our software. We will reserve a few slots for end
users talking about their deployment challenges and achievements.
If you are using oVirt in production you are encouraged submit a speaking
proposal. Simply mark it as an end-user collaboration proposal. As an
end user, this is a unique opportunity to get your input to developers.
BOF SESSION
We will reserve some slots in the evening after the main conference
tracks, for birds of a feather (BOF) sessions. These sessions will be
less formal than presentation tracks and targetted for people who would
like to discuss specific issues with other developers and/or users.
If you are interested in getting developers and/or uses together to
discuss a specific problem, please submit a BOF proposal.
LIGHTNING TALKS
In addition to submitted talks we will also have some room for lightning
talks. These are short (5 minute) discussions to highlight new work or
ideas that aren't complete enough to warrant a full presentation slot.
Lightning talk submissions and scheduling will be handled on-site at
oVirt Workshop.
HOTEL / TRAVEL
The oVirt Workshop Europe 2012 will be held in Barcelona, Spain at the
Hotel Fira Palace.
http://events.linuxfoundation.org/events/kvm-forum/hotel
Thank you for your interest in oVirt. We're looking forward to your
submissions and seeing you at the oVirt Workshop Europe 2012 in November!
Thanks,
your oVirt Workshop Europe 2012 Program Commitee
Please contact us with any questions or comments.
workshop-pc(a)ovirt.org
11 years, 7 months
Re: [vdsm] [Engine-devel] is gerrit.ovirt.org down? <eom>
by shuming@linux.vnet.ibm.com
It seems gerrit has downed for several times recently. Is there any
special reason?
于 2012-9-12 22:45, Alon Bar-Lev:
> yes.
>
> ----- Original Message -----
>> From: "Shireesh Anjal" <sanjal(a)redhat.com>
>> To: engine-devel(a)ovirt.org
>> Sent: Wednesday, September 12, 2012 5:43:35 PM
>> Subject: [Engine-devel] is gerrit.ovirt.org down? <eom>
>>
>>
>> _______________________________________________
>> Engine-devel mailing list
>> Engine-devel(a)ovirt.org
>> http://lists.ovirt.org/mailman/listinfo/engine-devel
>>
> _______________________________________________
> Engine-devel mailing list
> Engine-devel(a)ovirt.org
> http://lists.ovirt.org/mailman/listinfo/engine-devel
>
--
---
舒明 Shu Ming
Open Virtualization Engineerning; CSTL, IBM Corp.
Tel: 86-10-82451626 Tieline: 9051626 E-mail: shuming(a)cn.ibm.com or shuming(a)linux.vnet.ibm.com
Address: 3/F Ring Building, ZhongGuanCun Software Park, Haidian District, Beijing 100193, PRC
11 years, 7 months
Patch review process
by agl@us.ibm.com
Hi,
I want to open up a discussion about patch reviews in the vdsm project. I
believe everyone will agree that more code review needs to happen for the
betterment of the project. I want to ask everyone some questions and also make
some observations. I hope to gain some insights and improve my own workflow.
And I hope the same for everyone else too.
How much time in a week do you spend reviewing patches?
We have a lot of open patches in gerrit. When deciding to review some code, how
do you select a patch to review. I have heard people say that they only select
patches which have named them specifically as a reviewer. How does a new
contributor know who to ask? Does anyone have a workflow (or gerrit query) to
select recent unreviewed patches?
While discussing gerrit recently, I learned that some people use gerrit simply
to host work-in-progress patches and they don't intend for those to be reviewed.
How can a reviewer recognize this and skip those patches when choosing what to
review? Is there a way to mark certain patches as more important and others as
drafts?
Thanks for taking the time to share your thoughts.
--
Adam Litke <agl(a)us.ibm.com>
IBM Linux Technology Center
11 years, 7 months
Re: [vdsm] Change in vdsm[master]: engine.py: fail if Password doesn't match
by Ryan Harper
* dougsland(a)redhat.com <dougsland(a)redhat.com> [2012-09-11 01:38]:
> Douglas Schilling Landgraf has uploaded a new change for review.
>
> Change subject: engine.py: fail if Password doesn't match
> ......................................................................
>
> engine.py: fail if Password doesn't match
>
> Currently, if users in the Node TUI add the password to include the
> node through Engine and passwords doesn't match, no failure
> message will show and it will continue.
>
> This patch will show to users a failure message if the passwords
> doesn't match.
>
> Bug-Id: https://bugzilla.redhat.com/show_bug.cgi?id=854457
>
> Test:
>
> * Install Node
> * Select oVirt Engine Tab
> * Add passwords that doesn't match and click 'Apply'
>
> Change-Id: I143906eb6ce61037418eac25567496c6628aede9
> Signed-off-by: Douglas Schilling Landgraf <dougsland(a)redhat.com>
> ---
> M vdsm_reg/engine.py.in
> 1 file changed, 11 insertions(+), 0 deletions(-)
>
>
> git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/17/7917/1
>
> diff --git a/vdsm_reg/engine.py.in b/vdsm_reg/engine.py.in
> index 74fe07a..b104635 100644
> --- a/vdsm_reg/engine.py.in
> +++ b/vdsm_reg/engine.py.in
> @@ -42,6 +42,8 @@
> VDSM_REG_CONFIG = "/etc/vdsm-reg/vdsm-reg.conf"
> VDC_HOST_PORT = 443
> TIMEOUT_FIND_HOST_SEC = 5
> +PASSWORD_MATCH = 0
> +PASSWORD_DOESNT_MATCH = 1
>
> fWriteConfig = 0
> def set_defaults():
> @@ -186,6 +188,7 @@
> self.root_password_2.setCallback(self.password_check_callback)
> pw_elements.setField(self.root_password_2, 1, 2)
> self.pw_msg = Textbox(60, 6, "", wrap=1)
> + self.pw_resp = PASSWORD_MATCH
>
> elements.setField(pw_elements, 0, 6, anchorLeft=1)
> elements.setField(self.pw_msg, 0, 7, padding = (0,0,0,0))
> @@ -212,9 +215,17 @@
> def password_check_callback(self):
> resp, msg = password_check(self.root_password_1.value(), self.root_password_2.value())
> self.pw_msg.setText(msg)
> + self.pw_resp = resp
> return
>
> def action(self):
> + # Show error if the password informed by user doesn't match
> + if self.pw_resp == PASSWORD_DOESNT_MATCH and len(self.root_password_1.value()) > 0 or \
> + self.pw_resp == PASSWORD_DOESNT_MATCH and len(self.root_password_2.value()) > 0:
> + msg = "Password Do Not Match!"
> + ButtonChoiceWindow(self.ncs.screen, "@ENGINENAME@", msg, buttons = ['Ok'])
> + return
> +
What about moving the Button popup to an else clause of the if-check
that's already validating the password ?
if self.root_password_1.value() != "" and self.root_password_2.value() != "" and self.root_password_1.value() == self.root_password_2.value():
# set password ...
else:
ButtonChoiceWindow()
return?
> # To manage the engine_server_port value, use enginePort var to avoid
> # TUI putting the port value in the screen when you are just changing
> # the value and not asking to draw/print it.
>
>
> --
> To view, visit http://gerrit.ovirt.org/7917
> To unsubscribe, visit http://gerrit.ovirt.org/settings
>
> Gerrit-MessageType: newchange
> Gerrit-Change-Id: I143906eb6ce61037418eac25567496c6628aede9
> Gerrit-PatchSet: 1
> Gerrit-Project: vdsm
> Gerrit-Branch: master
> Gerrit-Owner: Douglas Schilling Landgraf <dougsland(a)redhat.com>
> _______________________________________________
> vdsm-patches mailing list
> vdsm-patches(a)lists.fedorahosted.org
> https://lists.fedorahosted.org/mailman/listinfo/vdsm-patches
--
Ryan Harper
Software Engineer; Linux Technology Center
IBM Corp., Austin, Tx
ryanh(a)us.ibm.com
11 years, 7 months
[RFC] GlusterFS domain specific changes
by M. Mohan Kumar
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.
Note:
Patches to enable exporting block devices as regular files are available
in Gluster Gerrit system
http://review.gluster.com/3551
11 years, 7 months
Re: [vdsm] Change in vdsm[master]: Add uploadIso API call for pushing ISOs into an active iso_d...
by Ryan Harper
* iheim(a)redhat.com <iheim(a)redhat.com> [2012-09-09 15:39]:
> Itamar Heim has posted comments on this change.
>
> Change subject: Add uploadIso API call for pushing ISOs into an active iso_domain via pool
> ......................................................................
>
>
> Patch Set 1:
>
> how would this work for anyone using vdsm api remotely?
The wget method supports remote acquisition.
>
> --
> To view, visit http://gerrit.ovirt.org/7849
> To unsubscribe, visit http://gerrit.ovirt.org/settings
>
> Gerrit-MessageType: comment
> Gerrit-Change-Id: Id78e46513c38789d08e63a38026b28bebb9a2b12
> Gerrit-PatchSet: 1
> Gerrit-Project: vdsm
> Gerrit-Branch: master
> Gerrit-Owner: Ryan Harper <ryanh(a)us.ibm.com>
> Gerrit-Reviewer: Federico Simoncelli <fsimonce(a)redhat.com>
> Gerrit-Reviewer: Itamar Heim <iheim(a)redhat.com>
> Gerrit-Reviewer: Ryan Harper <ryanh(a)us.ibm.com>
--
Ryan Harper
Software Engineer; Linux Technology Center
IBM Corp., Austin, Tx
ryanh(a)us.ibm.com
11 years, 7 months
Re: [vdsm] Change in vdsm[master]: bootstrap: perform reboot asynchronously
by Ryan Harper
* Alon Bar-Lev <alonbl(a)redhat.com> [2012-09-05 16:11]:
> Alon Bar-Lev has uploaded a new change for review.
>
> Change subject: bootstrap: perform reboot asynchronously
> ......................................................................
>
> bootstrap: perform reboot asynchronously
>
> The use of /sbin/reboot may cause reboot to be performed at the middle
> of script execution.
>
> Reboot should be delayed in background so that script will have a fair
> chance to terminate properly.
So, we fork and sleep 10 seconds? Is that really want we want to do?
Why is 10 seconds enough?
Shouldn't the deployUtil be tracking the script execution and waiting
for the scripts to complete before rebooting?
>
> Change-Id: I0abb02ae4d5033a8b9f2d468da86fcdc53e2e1c2
> Signed-off-by: Alon Bar-Lev <alonbl(a)redhat.com>
> ---
> M vdsm_reg/deployUtil.py.in
> 1 file changed, 39 insertions(+), 5 deletions(-)
>
>
> git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/83/7783/1
>
> diff --git a/vdsm_reg/deployUtil.py.in b/vdsm_reg/deployUtil.py.in
> index ebc7d36..b72cb44 100644
> --- a/vdsm_reg/deployUtil.py.in
> +++ b/vdsm_reg/deployUtil.py.in
> @@ -166,13 +166,47 @@
>
> def reboot():
> """
> - This function reboots the machine.
> + This function reboots the machine async
> """
> - fReturn = True
> + fReturn = False
>
> - out, err, ret = _logExec([EX_REBOOT])
> - if ret:
> - fReturn = False
> + # Default maximum for the number of available file descriptors.
> + MAXFD = 1024
> +
> + import resource # Resource usage information.
> + maxfd = resource.getrlimit(resource.RLIMIT_NOFILE)[1]
> + if (maxfd == resource.RLIM_INFINITY):
> + maxfd = MAXFD
> +
> + try:
> + pid = os.fork()
> + if pid == 0:
> + try:
> + os.setsid()
> + for fd in range(0, maxfd):
> + try:
> + os.close(fd)
> + except OSError: # ERROR, fd wasn't open to begin with (ignored)
> + pass
> +
> + os.open(os.devnull, os.O_RDWR) # standard input (0)
> + os.dup2(0, 1) # standard output (1)
> + os.dup2(0, 2) # standard error (2)
> +
> + if os.fork() != 0:
> + os._exit(0)
> +
> + time.sleep(10)
> + os.execl(EX_REBOOT, EX_REBOOT)
> + finally:
> + os._exit(1)
> +
> + pid, status = os.waitpid(pid, 0)
> +
> + if os.WIFEXITED(status) and os.WEXITSTATUS(status) == 0:
> + fReturn = True
> + except OSError:
> + pass
>
> return fReturn
>
>
>
> --
> To view, visit http://gerrit.ovirt.org/7783
> To unsubscribe, visit http://gerrit.ovirt.org/settings
>
> Gerrit-MessageType: newchange
> Gerrit-Change-Id: I0abb02ae4d5033a8b9f2d468da86fcdc53e2e1c2
> Gerrit-PatchSet: 1
> Gerrit-Project: vdsm
> Gerrit-Branch: master
> Gerrit-Owner: Alon Bar-Lev <alonbl(a)redhat.com>
> _______________________________________________
> vdsm-patches mailing list
> vdsm-patches(a)lists.fedorahosted.org
> https://lists.fedorahosted.org/mailman/listinfo/vdsm-patches
--
Ryan Harper
Software Engineer; Linux Technology Center
IBM Corp., Austin, Tx
ryanh(a)us.ibm.com
11 years, 8 months