How to give the user enough priviledge to reserve many machines at the same time
I build a VCL environment recently. One problem I meet is I can't reserve second machine after I reserving first one, even I am administrator. Is there any way can reserve multiple machines? Only way I discover now is that adding sub-image into one image. Thanks, Xianqing
How to balance the workload on different blades
To whom it may concern: Currently I am running ESX 3i servers on 7 blades. My VCL has 50 virtual machines can be allocated. My question is that how to balance the workload on different blades? For instance, 7 virtual machines have been reserved, in order to get best performance, how to allocate each virtual machine to different blades? Thanks, Xianqing
Re: How to balance the workload on different blades
Hi, Do you know where is the code VCL decides which computer will be used for reservation, and how this decision is being made? I am still trying to optimize the workload for now. Xianqing -- From: Josh Thompson josh_thomp...@ncsu.edu Sent: Monday, January 25, 2010 09:07 AM To: vcl-dev@incubator.apache.org Subject: Re: How to balance the workload on different blades -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Xianqing, The scheduler doesn't provide a way to do this right now. We will be doing a major overhaul to VM management in the 2.4 release which should provide what you are asking. Josh On Thu January 21 2010 10:04:16 pm yu267155...@hotmail.com wrote: To whom it may concern: Currently I am running ESX 3i servers on 7 blades. My VCL has 50 virtual machines can be allocated. My question is that how to balance the workload on different blades? For instance, 7 virtual machines have been reserved, in order to get best performance, how to allocate each virtual machine to different blades? Thanks, Xianqing - -- - --- Josh Thompson Systems Programmer Virtual Computing Lab (VCL) North Carolina State University josh_thomp...@ncsu.edu 919-515-5323 my GPG/PGP key can be found at www.keyserver.net -BEGIN PGP SIGNATURE- Version: GnuPG v2.0.11 (GNU/Linux) iD8DBQFLXaW2V/LQcNdtPQMRApkfAJwJ5XtBSwyBbg7kmlFeo1LjhiMfHACfTGvh EGCmFLL7JpdguAapdZv5Za0= =LrV7 -END PGP SIGNATURE-
Re: How to balance the workload on different blades
Josh, What I want to do is that make the workloads on each blade are equal. For instance, there are 6 virtual machines running in the system which has 6 blades, I hope VCL can select a computer which belong to a host that has the lowest current workload. So in the end, each virtual machine can be running on different blades. Thanks, Xianqing -- From: Josh Thompson josh_thomp...@ncsu.edu Sent: Wednesday, January 27, 2010 06:46 AM To: vcl-dev@incubator.apache.org Subject: Re: How to balance the workload on different blades -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Xianqing, The scheduling algorithm is in isAvailable in utils.php. It would be difficult to describe the whole thing. Have a look at the code first. If you have specific questions about it, ask here. Before you make changes to the code, it would be useful if you would describe what you are planning on doing. You may be doing something useful to other parts of the community or even the whole community. If so, we can provide feedback on what may be the best way to implement the changes you are making so that they can be most easily incorporated into the official codebase. Thanks, Josh On Tue January 26 2010 3:38:37 pm yu267155...@hotmail.com wrote: Hi, Do you know where is the code VCL decides which computer will be used for reservation, and how this decision is being made? I am still trying to optimize the workload for now. Xianqing -- From: Josh Thompson josh_thomp...@ncsu.edu Sent: Monday, January 25, 2010 09:07 AM To: vcl-dev@incubator.apache.org Subject: Re: How to balance the workload on different blades -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Xianqing, The scheduler doesn't provide a way to do this right now. We will be doing a major overhaul to VM management in the 2.4 release which should provide what you are asking. Josh On Thu January 21 2010 10:04:16 pm yu267155...@hotmail.com wrote: To whom it may concern: Currently I am running ESX 3i servers on 7 blades. My VCL has 50 virtual machines can be allocated. My question is that how to balance the workload on different blades? For instance, 7 virtual machines have been reserved, in order to get best performance, how to allocate each virtual machine to different blades? Thanks, Xianqing - -- - --- Josh Thompson Systems Programmer Virtual Computing Lab (VCL) North Carolina State University josh_thomp...@ncsu.edu 919-515-5323 my GPG/PGP key can be found at www.keyserver.net -BEGIN PGP SIGNATURE- Version: GnuPG v2.0.11 (GNU/Linux) iD8DBQFLXaW2V/LQcNdtPQMRApkfAJwJ5XtBSwyBbg7kmlFeo1LjhiMfHACfTGvh EGCmFLL7JpdguAapdZv5Za0= =LrV7 -END PGP SIGNATURE- - -- - --- Josh Thompson Systems Programmer Virtual Computing Lab (VCL) North Carolina State University josh_thomp...@ncsu.edu 919-515-5323 my GPG/PGP key can be found at www.keyserver.net -BEGIN PGP SIGNATURE- Version: GnuPG v2.0.11 (GNU/Linux) iD8DBQFLYCekV/LQcNdtPQMRAlbDAJ9rE0+ShOzKpZ3QUdR846Mls1Oy6gCcDJsI ILphaDYRE85QmPAk8PoRZFw= =fWOT -END PGP SIGNATURE-
The modified code for randomly choosing computer for the reservation
Hi, I insert my code to the function allocComputer in the utils.php. The main function of my code is randomly pick up a machine from the computer array and return it to the caller. The reason is that I want to distribute the reserved virtual machine to different blades, therefore balance the workload. Generally, what I am doing is that, I check the length of available computer in the array first, and randomly pick up machines from the array. Then I exchange this machine's id with array(0). At last, I pass this array to original allocComputer code to check computer's availability and set up the computer id. This is simple code to achieve the some extent of distribution. For your reference, this is my allocComputer code. Thanks, Xianqing /// /// \fn allocComputer($blockids, $currentids, $computerids, $start, /// $nowfuture) /// /// \param $blockids - array of computer ids /// \param $currentids - array of computer ids /// \param $computerids - array of computer ids /// \param $start - start time in datetime format /// \param $nowfuture - now or future /// /// \return empty array if failed to allocate a computer; array with these keys /// on success:\n /// \b compid - id of computer\n /// \b mgmtid - id of management node for computer\n /// \b loaded - 0 or 1 - whether or not computer is loaded with desired image /// /// \brief determines a computer to use from $blockids, $currentids, /// and $computerids, looking at the arrays in that order and /// tries to allocate a management node for it /// function allocComputer($blockids, $currentids, $computerids, $start, $nowfuture) { $ret = array(); if (count($blockids) 0) { $random_number = rand(0,count($blockids) - 1); while($blockids[$random_number] == null) $random_number = rand(0,count($blockids) - 1); $tp = $blockids[0]; $blockids[0] = $blockids[$random_number]; $blockids[$random_number] = $tp; # printArray($blockids); } foreach($blockids as $compid) { $mgmtnodeid = findManagementNode($compid, $start, $nowfuture); if($mgmtnodeid == 0) continue; $ret['compid'] = $compid; $ret['mgmtid'] = $mgmtnodeid; $ret['loaded'] = 1; return $ret; } if (count($currentids) 0) { $random_number1 = rand(0,count($currentids) - 1); while($currentids[$random_number1] == null) $random_number1 = rand(0,count($currentids) - 1); $tp1 = $currentids[0]; $currentids[0] = $currentids[$random_number1]; $currentids[$random_number1] = $tp1; # printArray($currentids); } foreach($currentids as $compid) { $mgmtnodeid = findManagementNode($compid, $start, $nowfuture); if($mgmtnodeid == 0) continue; $ret['compid'] = $compid; $ret['mgmtid'] = $mgmtnodeid; $ret['loaded'] = 1; return $ret; } if (count($computerids) 0) { $random_number2 = rand(0,count($computerids) - 1); while($computerids[$random_number2] == null) $random_number2 = rand(0,count($computerids) - 1); $tp2 = $computerids[0]; $computerids[0] = $computerids[$random_number2]; $computerids[$random_number2] = $tp2; # printArray($computerids); } foreach($computerids as $compid) { $mgmtnodeid = findManagementNode($compid, $start, $nowfuture); if($mgmtnodeid == 0) continue; $ret['compid'] = $compid; $ret['mgmtid'] = $mgmtnodeid; $ret['loaded'] = 0; return $ret; } return $ret; }
How to disable cache
I am working on deploying VCL code. And I know virtual machine caching mechnism, which will boot VM before user making reservation, is useful. However, I want to disable the VM caching mechnism so I can develop some specific provisioning module. Is there any way can disable the caching mechnism in the VCL code? Thanks, Xianqing
Re: Short question - VCL backend
Hi VCL team and Justin, I am Xianqing, and NC state unviersity student. I just finish the project which porting the VCL to EC2. What I am doing is added the new provisioning module ec2.pm and modify 5 lines of vcl code in image.pm. The new module will use the EC2 api to manage virutal machine. You can use VCL interface to make the reservation, update the image, and create the new image. Welcome to ask any questions about that? Hi VCL team, I would like to contribute the new module to the VCL incubator in next few days. I submitted ICLA, so the next step to contribute my code is post it on the JIRA, right? Is there anythings else I have to do? Thanks, Xianqing -- From: aaron_pee...@ncsu.edu Sent: Tuesday, June 15, 2010 04:50 PM To: vcl-dev@incubator.apache.org Subject: Re: Short question - VCL backend Hello Justin, Welcome. For the most part the vcl api is currently setup for the backend calls, or a third party app to request a VCL resource, manage users, etc, so it's currently supporting incoming api calls. There might be a better way but my first thought is that a new perl provisioning module could be created to make the api calls to EC2 or some other cloud/cluster to accomplish this. In addition to adding a provisioning module, the vcl database would need to have placeholders for EC2/Eucalyptus computer resources, so it would know what/how many compute nodes are available, etc. Aaron Hello VCL dev team, My name is Justin, and I am currently researching VCL for academic purposes and attempting to set up a potential testing environment based on the tutorial herehttps://cwiki.apache.org/VCL/configuring-a-standalone-vmware-vcl-environment.html. I was wondering, is it possible to set up a different back end, such as Eucalyptus or EC2 using the current web interface? (I noticed one of the features is API support for making requests and provisioning resources, so maybe the Amazon API can be used?) Also, I am installing this on Ubuntu 9.10 and apparently I have to rebuild the Linux kernel to install VMware... does this seem correct? - Justin
Re: Short question - VCL backend
-- From: Justin Duperre jdupe...@gmail.com Sent: Monday, June 21, 2010 11:11 AM To: vcl-dev@incubator.apache.org Subject: Re: Short question - VCL backend Hello Xianqing, This sounds really cool! I am actually in the process of setting up a test environment on a single physical machine, but i hit a roadblock with VMware (compatibility issues). I was able to get VCL(DB, front end, mgt. node) up and running, and am able to access the front end via localhost. I am hoping to have more success with your provisioning module. I actually have a eucalyptus private cloud set up already. I have used the HybridFox FireFox plug-in - overall it is pretty good, but the VCL front end is more desirable. Since the EC2 API is the same as the Eucalyptus API, I should be able to access this private cloud availability zone, to perform the operations you described, right? Yes, I think so. But you probably need to correctly configure some globe environment variables, so EC2 API can be used when commands are called in the perl code. I would like to begin testing as soon as it is released - does this involve simply replacing the modified files you described? (or a fresh VCL install). You just need a freash VCL install, and then replace one module of VCL code. I will specify inside the JIRA later. - Justin