-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Khder,
The biggest thing missing is selection of a VM based on load on the hypervisors. However, there is not currently a way for the frontend to know what the load on the hypervisors is to be able to use that information for selection of a VM. So, to add this, the backend would need to collect hypervisor load information periodically and push that to the database so that the frontend could analyze it in selecting VMs. Josh On Friday, November 07, 2014 11:08:08 PM Khder Omar wrote: > Josh, > Thanks for the detailed explanation ! I really appreciate such sharing > information! Eventually, I found important to see how such internal process > works in order to know better what to improve and experiment. Based on your > statement, I can see that it misses the limit based on number of cores. > In the other hand, do you think that still some few things missed or not > being well performed in the scheduling of the VCL for example ? or queuing > system ? > > Best Regards, > Phd team > > 2014-11-07 22:40 GMT+01:00 Josh Thompson <[email protected]>: > > -----BEGIN PGP SIGNED MESSAGE----- > > Hash: SHA1 > > > > Khder, > > > > VCL knows about the specs (RAM, cores, processor speed) of each VM host > > and > > the specs of each image. It does not assign a reservation to a VM on a > > host > > that would result in the host's RAM being overbooked. The number of cores > > are > > not currently checked. So, they could be overbooked. Functionality to > > limit > > reservations based on number of cores will be added at a future date. So, > > yes, it is the responsibility of the hypervisor to assign the required > > resources, but it should never have to overbook the RAM to bring up a VM > > for a > > new reservation. For bare metal reservations, an image is never assigned > > to a > > node that doesn't meet the minimum specs of the image. > > > > Multiple users can make reservations for the same image. A separate node > > is > > deployed for every reservation. There could be a slight impact on deploy > > time > > since VCL uses linked clones for the disk files. So, reads for the same > > image > > would be hitting the same file. Write would be going to separate files. > > This > > is actually somewhat complicated because the base file on which the linked > > clones is actually only shared with hosts that are using the same > > datastore. > > > > When a node is already loaded with an image someone requests (we call this > > a > > hot standby node), the deploy time is obviously much shorter. VCL does > > not > > allow nodes to be shared other than the case of a bare metal machine > > running a > > hypervisor and hosting VMs (the VMs aren't shared, but the physical > > machine > > is). So, only one user would get a given preloaded node. > > > > Josh > > > > On Thursday, November 06, 2014 2:46:59 AM Khder Omar wrote: > > > Dear Josh, > > > > > > Thanks again for your reply ! I understand the mapping part ! Concerning > > > the VCL model as you might mentioned the terms could be different > > > > comparing > > > > > to a typical IaaS. > > > Most probably I was bit confusing the images provisioning. If I > > > > understood > > > > > it correctly, once reservation process starts, a new image will be > > > > deployed > > > > > in the corresponding computer or host [just streaming the disk images > > > > files > > > > > to build a complete environment within specific resources CPU and RAM] > > > > > > Therefore, that will be the Physical/Virtual deployer [Hypervisor] role > > > > to > > > > > assign those resources ? > > > > > > Another interesting point which highlights the point if many users can > > > > make > > > > > more than one reservation for the same image ? does it affect the image > > > loading time [queue of requests to access/use shared resource] ? > > > besides, > > > if the image is already deployed and running in a specific computer [can > > > > be > > > > > physical/virtual], can many users access the same computer at the same > > > > time > > > > > ? > > > > > > Thanks for your clarification ! > > > > > > Best regards, > > > Phd Team > > > > > > 2014-11-05 22:34 GMT+01:00 Josh Thompson <[email protected]>: > > > > -----BEGIN PGP SIGNED MESSAGE----- > > > > Hash: SHA1 > > > > > > > > Khder, > > > > > > > > Mapping is just a way for the scheduler part of the frontend to know > > > > what > > > > > > computers a given image can be loaded on.This could be because of an > > > > architectural restriction or it could simply be because a researcher > > > > bought > > > > her own hardware and only her images should be run on them. Mapping > > > > doesn't > > > > actually have to do with where the image files reside. I don't think > > > > the > > > > > > backend code ever even looks at the mapping information. > > > > > > > > Remember that VCL predates the terms cloud computing, IaaS, PaaS, etc. > > > > So, > > > > the terms used for VCL might be somewhat different from more recent > > > > systems. > > > > > > > > In VCL, each "image" or "environment" consists of a set of disk image > > > > files > > > > and the associated information about the image that is in the > > > > database. > > > > Initial "base images" must be created somewhat manually. Then, > > > > further > > > > images > > > > are derived from those base images. I don't know that VCL really has > > > > flavors > > > > because each image will have its own CPU and RAM specifications. > > > > > > > > Does that answer your questions? > > > > > > > > Josh > > > > > > > > On Tuesday, November 04, 2014 11:00:01 PM Khder Omar wrote: > > > > > Dear Josh, > > > > > > > > > > I was wondering during the creation of new image, it does not > > > > require to > > > > > > be > > > > > > > > > stored in the computer node itself, it can be stored in an image > > > > library > > > > > > > like a SAN or NAS storage then we mapped a given image to a certain > > > > > computer or computer group ! the fact to 'map' an image or image > > > > group > > > > > > to a > > > > > > > > > computer or computer group, does it mean 'streaming' the image > > > > 'locally' > > > > > > to > > > > > > > > > the computer node ? or only during the reservation ? > > > > > I was bit confused between the terms used in VCL and in a typical > > > > IaaS > > > > > > > environment: the image is claimed as a template of a virtual > > > > machine, in > > > > > > > VCL, I have noticed that the image is being created from a base OS > > > > and > > > > > > > resources information are assigned in the database such as RAM, CPU, > > > > > > > > arch, > > > > > > > > > id etc... > > > > > Then I might assume [correct me if I understood it wrong] the > > > > Virtual > > > > > > > Machine will be initiated [considering an Hypervisor KVM or ESXi ] > > > > while > > > > > > > processing the reservation. Therefore, we can describe such image in > > > > a > > > > > > > typical IaaS as a virtual machine flavor ready to be deployed and > > > > run on > > > > > > > Host or Computer [within an hypervisor supported]. > > > > > > > > > > Thanks! > > > > > > > > > > PhD team > > > > > > > > > > 2014-10-30 20:07 GMT+01:00 Khder Omar <[email protected]>: > > > > > > Dear Josh, > > > > > > > > > > > > That is true ! Thanks again for the clarification ! I will start > > > > > > > > doing > > > > > > > > > > some experiments and see what it gives from performance > > > > perspective ! > > > > > > In > > > > > > > > > > the other hand, I will keep updating for any proposal of ideas can > > > > be > > > > > > > > generated then we can refine the scheduler code and retest again ! > > > > > > > > > > > > Many thanks for sharing such valuable information! > > > > > > > > > > > > We will keep updated ! > > > > > > > > > > > > Best Regards > > > > > > PhD Team > > > > > > > > > > > > 2014-10-30 19:56 GMT+01:00 Josh Thompson <[email protected]>: > > > > > >> -----BEGIN PGP SIGNED MESSAGE----- > > > > > >> Hash: SHA1 > > > > > >> > > > > > >> Khder, > > > > > >> > > > > > >> The scheduler only allocates a computer randomly if > > > > > >> SCHEDULER_ALLOCATE_RANDOM_COMPUTER is set to 1 in conf.php, which > > > > it > > > > > > is > > > > > > > > > >> not by > > > > > >> default. > > > > > >> > > > > > >> Yes, you could create pools that each have a weight or ranking > > > > > > > > assigned. > > > > > > > > > >> Each > > > > > >> computer would be assigned to a pool. Then, when the initial set > > > > of > > > > > > > >> computers > > > > > >> is generated, they could be ranked by the pool weight/ranks. It > > > > > >> would > > > > > >> then be > > > > > >> up to an administer or external application to manage the > > > > weight/rank > > > > > > of > > > > > > > > > >> each > > > > > >> pool. > > > > > >> > > > > > >> Josh > > > > > >> > > > > > >> On Thursday, October 30, 2014 7:48:50 PM Khder Omar wrote: > > > > > >> > Dear Josh, > > > > > >> > > > > > > >> > I would like to thank you for the precious hints concerning the > > > > > >> > > > > > >> scheduling > > > > > >> > > > > > >> > nature within VCL. I can see that the set of computers is > > > > filtered > > > > > > in > > > > > > > > > >> > advance and then the scheduler will pick up RANDOMLY one of > > > > them. > > > > > > > >> > To > > > > > >> > > > > > >> check > > > > > >> > > > > > >> > the possibilities to extend the function considering a large > > > > scale > > > > > > > >> > environment where we can introduce the 'region' or 'pool' term > > > > in > > > > > > the > > > > > > > > > >> code. > > > > > >> > > > > > >> > With multiple management nodes, do you think that using the > > > > > >> > 'weight' > > > > > >> > for > > > > > >> > the workload per pool and then per computer therefore will rank > > > > it > > > > > > will > > > > > > > > > >> be > > > > > >> > > > > > >> > more precise on how to balance the load across the hole > > > > > > > > infrastructure > > > > > > > > > >> > ? > > > > > >> > > > > > > >> > Best Regards, > > > > > >> > PhD team > > > > > >> > > > > > > >> > 2014-10-30 19:28 GMT+01:00 Josh Thompson < > > > > [email protected]>: > > > > > >> > > -----BEGIN PGP SIGNED MESSAGE----- > > > > > >> > > Hash: SHA1 > > > > > >> > > > > > > > >> > > Khder, > > > > > >> > > > > > > > >> > > Sorry for the late response. > > > > > >> > > > > > > > >> > > You can certainly experiment with extending the code to > > > > include > > > > > > more > > > > > > > > > >> > > advanced > > > > > >> > > scheduling functions. The existing ranking of computers is > > > > > > > > something > > > > > > > > > >> like > > > > > >> > > > > > >> > > this: > > > > > >> > > > > > > > >> > > 1) generate a set of all computers meeting the minimum > > > > > > > > requirements > > > > > > > > > >> of the > > > > > >> > > > > > >> > > image, that the user has access to, and that the image is > > > > mapped > > > > > > to; > > > > > > > > > >> order > > > > > >> > > > > > >> > > that list by node specs from low to high > > > > > >> > > 2) remove from that set any computers that are already > > > > assigned > > > > > > > >> > > reservations > > > > > >> > > 3) if the image is virtual, remove any VMs for which the host > > > > > > > > doesn't > > > > > > > > > >> have > > > > > >> > > > > > >> > > enough memory to load the VM (without overbooking) > > > > > >> > > 4) assign the new reservation the first computer from that > > > > > >> > > set > > > > > >> > > for > > > > > >> > > > > > >> which > > > > > >> > > > > > >> > > an > > > > > >> > > active management node can be found > > > > > >> > > > > > > > >> > > There's actually 3 sets of computers being tracked - those > > > > > >> > > already > > > > > >> > > > > > >> loaded > > > > > >> > > > > > >> > > with > > > > > >> > > the image being requested, those set aside for a block > > > > allocation > > > > > > of > > > > > > > > > >> which > > > > > >> > > > > > >> > > the > > > > > >> > > user is a member, and then a set of both of those plus any > > > > > > > > available > > > > > > > > > >> > > computers > > > > > >> > > that are currently loaded with another image. > > > > > >> > > > > > > > >> > > There is a configuration option > > > > > > > > (SCHEDULER_ALLOCATE_RANDOM_COMPUTER) > > > > > > > > > >> in > > > > > >> > > > > > >> > > conf.php that allows the sets of computers to be randomized. > > > > The > > > > > > > >> > > motivation > > > > > >> > > behind this option is for sites that have homogeneous virtual > > > > > >> > > > > > >> machines and > > > > > >> > > > > > >> > > hosts. Randomizing the assigned computer should help spread > > > > the > > > > > > load > > > > > > > > > >> > > equally > > > > > >> > > among all existing hosts. > > > > > >> > > > > > > > >> > > I hope that helps. > > > > > >> > > > > > > > >> > > Josh > > > > > >> > > > > > > > >> > > On Tuesday, October 21, 2014 9:01:17 PM Khder Omar wrote: > > > > > >> > > > Hi Josh, > > > > > >> > > > > > > > > >> > > > Thanks for your reaction. I have checked the code source > > > > and I > > > > > > > >> think the > > > > > >> > > > > > >> > > > only function which might fulfill my question is function > > > > > >> > > > > > > > >> > > allocComputer(...) > > > > > >> > > > > > > > >> > > > Eventually, the function a piece test schedule code > > > > > >> > > > > > > > > >> > > > if(SCHEDULER_ALLOCATE_RANDOM_COMPUTER) { > > > > > >> > > > > > > > > >> > > > shuffle($blockids); > > > > > >> > > > shuffle($currentids); > > > > > >> > > > shuffle($computerids); > > > > > >> > > > > > > > > >> > > > } > > > > > >> > > > > > > > > >> > > > > > > > > >> > > > I might assume if it was correctly understood that VCL > > > > > >> > > > scheduler > > > > > >> > > > > > >> process > > > > > >> > > > > > >> > > > determines in first place a computer to be assigned to a > > > > > > > > management > > > > > > > > > >> node > > > > > >> > > > > > >> > > > from a given array or table in order otherwise it can be > > > > > > > > randomly > > > > > > > > > >> > > > chosen! > > > > > >> > > > Then, we can assume that the scheduling decision is still > > > > using > > > > > > a > > > > > > > > > >> basic > > > > > >> > > > > > >> > > > order as FCFS or a chance/Random order! It that assumed be > > > > > > > > correct > > > > > > > > > >> ? if > > > > > >> > > > > > >> > > so, > > > > > >> > > > > > > > >> > > > is there a way to extend the code by including more > > > > > >> > > > advanced > > > > > >> > > > > > >> scheduling > > > > > >> > > > > > >> > > > functions ? > > > > > >> > > > > > > > > >> > > > Best regards, > > > > > >> > > > PhD Team > > > > > >> > > > > > > > > >> > > > 2014-10-21 16:11 GMT+01:00 Josh Thompson < > > > > > > > > [email protected]>: > > > > > >> > > > > -----BEGIN PGP SIGNED MESSAGE----- > > > > > >> > > > > Hash: SHA1 > > > > > >> > > > > > > > > > >> > > > > Khder, > > > > > >> > > > > > > > > > >> > > > > The scheduling of reservations is actually done in the > > > > > >> > > > > web > > > > > > > > code. > > > > > > > > > >> Have > > > > > >> > > > > > >> > > a > > > > > >> > > > > > > > >> > > > > look > > > > > >> > > > > at the isAvailable function in the web/.ht-inc/utils.php > > > > > >> > > > > file. > > > > > > > > https://svn.apache.org/repos/asf/vcl/trunk/web/.ht-inc/utils.php > > > > > > > > > >> > > > > Josh > > > > > >> > > > > > > > > > >> > > > > On Tuesday, October 21, 2014 4:39:05 PM Khder Omar wrote: > > > > > >> > > > > > Dear all, > > > > > >> > > > > > > > > > > >> > > > > > We were wondering what kind of scheduler algorithms VCL > > > > > > > > might > > > > > > > > > >> use ? > > > > > >> > > > > > >> > > Any > > > > > >> > > > > > > > >> > > > > > hints about the scheduler source code will be > > > > appreciated. > > > > > > The > > > > > > > > > >> idea > > > > > >> > > > > > >> > > is > > > > > >> > > > > > > > >> > > > > > actually to check how VCL will perform while changing > > > > the > > > > > > > >> scheduler > > > > > >> > > > > > >> > > > > > algorithm [in management node]. > > > > > >> > > > > > > > > > > >> > > > > > > > > > > >> > > > > > Thanks in advance > > > > > >> > > > > > > > > > > >> > > > > > Best regards, > > > > > >> > > > > > Phd team > > > > > >> > > > > > > > > > >> > > > > - -- > > > > > >> > > > > - ------------------------------- > > > > > >> > > > > Josh Thompson > > > > > >> > > > > VCL Developer > > > > > >> > > > > North Carolina State University > > > > > >> > > > > > > > > > >> > > > > my GPG/PGP key can be found at pgp.mit.edu > > > > > >> > > > > > > > > > >> > > > > All electronic mail messages in connection with State > > > > > >> > > > > business > > > > > >> > > > > > >> which > > > > > >> > > > > > >> > > > > are sent to or received by this account are subject to > > > > the NC > > > > > > > >> Public > > > > > >> > > > > > >> > > > > Records Law and may be disclosed to third parties. > > > > > >> > > > > -----BEGIN PGP SIGNATURE----- > > > > > >> > > > > Version: GnuPG v2.0.22 (GNU/Linux) > > > > > > > > iEYEARECAAYFAlRGd60ACgkQV/LQcNdtPQPMjQCdF/28fx+VlhmZV0WEMobcv+7p > > > > > > > > > >> > > > > OAEAn1mct5Iz5bWrLnnX/yQl13wMVwRg > > > > > >> > > > > =RMTU > > > > > >> > > > > -----END PGP SIGNATURE----- > > > > > >> > > > > > > > >> > > - -- > > > > > >> > > - ------------------------------- > > > > > >> > > Josh Thompson > > > > > >> > > VCL Developer > > > > > >> > > North Carolina State University > > > > > >> > > > > > > > >> > > my GPG/PGP key can be found at pgp.mit.edu > > > > > >> > > > > > > > >> > > All electronic mail messages in connection with State > > > > > >> > > business > > > > > > > > which > > > > > > > > > >> > > are sent to or received by this account are subject to the NC > > > > > > > > Public > > > > > > > > > >> > > Records Law and may be disclosed to third parties. > > > > > >> > > -----BEGIN PGP SIGNATURE----- > > > > > >> > > Version: GnuPG v2.0.22 (GNU/Linux) > > > > iEYEARECAAYFAlRSgzoACgkQV/LQcNdtPQMRBgCfaBOvBvUNnfdr5BLR7cnr+vMx > > > > > > > >> > > 5uQAniwpvKVjVGdW//rvNBYCKu485Siy > > > > > >> > > =xWum > > > > > >> > > -----END PGP SIGNATURE----- > > > > > >> > > > > > >> - -- > > > > > >> - ------------------------------- > > > > > >> Josh Thompson > > > > > >> VCL Developer > > > > > >> North Carolina State University > > > > > >> > > > > > >> my GPG/PGP key can be found at pgp.mit.edu > > > > > >> > > > > > >> All electronic mail messages in connection with State business > > > > which > > > > > > > >> are sent to or received by this account are subject to the NC > > > > Public > > > > > > > >> Records Law and may be disclosed to third parties. > > > > > >> -----BEGIN PGP SIGNATURE----- > > > > > >> Version: GnuPG v2.0.22 (GNU/Linux) > > > > > >> > > > > > >> iEYEARECAAYFAlRSieYACgkQV/LQcNdtPQOjlACfS97i9Hk0Tmspy+6vfgOcENht > > > > > >> UtYAn008A0w5VBq+eg5iGg1GRlff3zDB > > > > > >> =tCAJ > > > > > >> -----END PGP SIGNATURE----- > > > > > > > > - -- > > > > - ------------------------------- > > > > Josh Thompson > > > > VCL Developer > > > > North Carolina State University > > > > > > > > my GPG/PGP key can be found at pgp.mit.edu > > > > > > > > All electronic mail messages in connection with State business which > > > > are sent to or received by this account are subject to the NC Public > > > > Records Law and may be disclosed to third parties. > > > > -----BEGIN PGP SIGNATURE----- > > > > Version: GnuPG v2.0.22 (GNU/Linux) > > > > > > > > iEYEARECAAYFAlRal+cACgkQV/LQcNdtPQOAGACeL2Sanhs7ShZaCyKcSo5N2BYk > > > > wLEAn08YbcyiCmR4rY9u4kZJocfxY1Ju > > > > =pxdL > > > > -----END PGP SIGNATURE----- > > > > - -- > > - ------------------------------- > > Josh Thompson > > VCL Developer > > North Carolina State University > > > > my GPG/PGP key can be found at pgp.mit.edu > > > > All electronic mail messages in connection with State business which > > are sent to or received by this account are subject to the NC Public > > Records Law and may be disclosed to third parties. > > -----BEGIN PGP SIGNATURE----- > > Version: GnuPG v2.0.22 (GNU/Linux) > > > > iEYEARECAAYFAlRdPGkACgkQV/LQcNdtPQNFjACfdZm6YIKYhJ3EtamGXOfX1Dgs > > X90An3OeCGLL58j2VzzA96jTPfBuIDgI > > =w2De > > -----END PGP SIGNATURE----- - -- - ------------------------------- Josh Thompson VCL Developer North Carolina State University my GPG/PGP key can be found at pgp.mit.edu All electronic mail messages in connection with State business which are sent to or received by this account are subject to the NC Public Records Law and may be disclosed to third parties. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) iEYEARECAAYFAlRg+moACgkQV/LQcNdtPQO9WACdFe64eIJAA9JCUTHql7kti1Hy fX4AnjQshbEopN3rdjWEQzZTUrpae9Gr =kEzB -----END PGP SIGNATURE-----
