cloudstack-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrija Panic <andrija.pa...@shapeblue.com>
Subject RE: how to run rhel 6.x VM as PV VM on xenserver 7.1CU1?
Date Thu, 31 Jan 2019 21:58:21 GMT
Hi Yiping,

Please check how this was done in previous releases (i.e. added support for XenServer 7.1.0
and some additional missing guest os mapping etc:

https://github.com/apache/cloudstack/blob/master/engine/schema/src/main/resources/META-INF/db/schema-41000to41100.sql

Just make sure that your SQL queries don't depend on ID, i.e. will work across different people's
installation...
... and then being a good community member 😊 please try to commit this back to community
- someone will review for sure and give you feedback
i.e. here https://github.com/apache/cloudstack/blob/master/engine/schema/src/main/resources/META-INF/db/schema-41120to41200.sql
though today/tomorrow guys will freeze the 4.12/master for a new release candidate etc. -
so not sure if you will have to send your pull request against some other branch....

Hope that helps

Kind regards,
Andrija

andrija.panic@shapeblue.com 
www.shapeblue.com
Amadeus House, Floral Street, London  WC2E 9DPUK
@shapeblue
  
 


-----Original Message-----
From: Yiping Zhang <yzhang@marketo.com> 
Sent: 31 January 2019 22:41
To: users@cloudstack.apache.org
Subject: Re: how to run rhel 6.x VM as PV VM on xenserver 7.1CU1?

Hi, Andrija:

I am willing to try this approach given that we are working in a lab environment. Otherwise
we would have to downgrade to use XenServer 7.1 + installing security patches afterwards

Since we also need to add one new entry in hypervisor_capabilities table for XenServer 7.1.1
and there is no API to *add* new entry into this table, we decided to use SQL directly.  After
reading source code in cloudstack/engine/schema/src/main/resources/META-INF/db directory on
Github, we come up with following SQL statements to seed DB tables for XenServer 7.1CU1 support:

INSERT IGNORE INTO hypervisor_capabilities (uuid, hypervisor_type, hypervisor_version, max_guests_limit,
max_data_volumes_limit, storage_motion_supported) values (UUID(), "XenServer", "7.1.1", 500,
13, 1);

INSERT IGNORE INTO guest_os_hypervisor (uuid,hypervisor_type, hypervisor_version, guest_os_name,
guest_os_id, created, is_user_defined)
              SELECT UUID(),"Xenserver", "7.1.1", guest_os_name, guest_os_id, utc_timestamp(),
0
              FROM guest_os_hypervisor
              WHERE hypervisor_type="Xenserver"
              AND hypervisor_version="7.1.0";

After executing these two SQL statements,  and restarting management service, all my RHEL
6.x VM instances can be started successfully as PV instances. Now we just have to do a lot
more validation checks to make sure all is well, especially with our own particular setups
and usages.  I'd appreciate very much if anyone else could send their feedbacks and gotchas
if they have done anything similar and any area I may need to pay more attention with.

Thanks

Yiping



On 1/30/19, 2:34 AM, "Andrija Panic" <andrija.panic@shapeblue.com> wrote:

    Hi Yiping,
    
    As far as I can expect, patch level should not break any functionality with ACS (except,
obviously, guest OS mappings...) so I assume it should work same was as unpatched/vanila version.
    
    https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fcloudstack.apache.org%2Fapi%2Fapidocs-4.11%2Fapis%2FaddGuestOsMapping.html&amp;data=02%7C01%7Cyipzhang%40adobe.com%7C7be8d8c0b54748293cc308d6869e9335%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C1%7C636844412977844955&amp;sdata=x6cRVNkrIw2bN87nibCtwlgwfZ3GfWm%2Buxsg4R7oyVg%3D&amp;reserved=0
    
    Please use above API call to make needed guest OS mapping - i.e. observe needed (or all
???) OS types (ID value from guest_os table for each guest OS type in ACS) and use it to generate
appropriate API calls which will create missing mapping records inside guest_os_hypervisor
table).
    
    Alternatively,  just copy all 192 rows that you have for 7.1.0 - duplicate all these rows
with changing hypervisor_version to 7.1.1 - I assume mgmt. restart might be needed, but since
test env, doesn't hurt.
    
    Let me know how this worked for you,
    
    Best
    Andrija
    
    andrija.panic@shapeblue.com 
    https://na01.safelinks.protection.outlook.com/?url=www.shapeblue.com&amp;data=02%7C01%7Cyipzhang%40adobe.com%7C7be8d8c0b54748293cc308d6869e9335%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C1%7C636844412977844955&amp;sdata=XeE6PL2DHQZhBlkXLA6o3bjIqfRZFTklrFBp85naDeU%3D&amp;reserved=0
    Amadeus House, Floral Street, London  WC2E 9DPUK
    @shapeblue
      
     
    
    
    -----Original Message-----
    From: Yiping Zhang <yzhang@marketo.com> 
    Sent: 29 January 2019 21:54
    To: users@cloudstack.apache.org
    Subject: Re: how to run rhel 6.x VM as PV VM on xenserver 7.1CU1?
    
    Hi, Andrija:
    
    I think you are
    
     on to something here:
    
    Here are my query results for these sql statements:
    
    mysql> select id,name,hypervisor_type,hypervisor_version from host where type="Routing"
and removed is NULL;
    +----+---------------+-----------------+--------------------+
    | id | name          | hypervisor_type | hypervisor_version |
    +----+---------------+-----------------+--------------------+
    | 56 | lab-hv03 | XenServer       | 7.1.1              |
    | 57 | lab-hv02 | XenServer       | 7.1.1              |
    | 58 | lab-hv04 | XenServer       | 7.1.1              |
    +----+---------------+-----------------+--------------------+
    3 rows in set (0.00 sec)
    
    mysql> SELECT count(*) FROM guest_os_hypervisor WHERE hypervisor_type="Xenserver" AND
hypervisor_version = "7.1.0";
    +----------+
    | count(*) |
    +----------+
    |      192 |
    +----------+
    1 row in set (0.00 sec)
    
    mysql> SELECT count(*) FROM guest_os_hypervisor WHERE hypervisor_type="Xenserver" AND
hypervisor_version = "7.1.1";
    +----------+
    | count(*) |
    +----------+
    |        0 |
    +----------+
    1 row in set (0.01 sec)
    
    mysql>
    
    
    As can be seen,  there are 192 entries for hypervisor_version "7.1.0", but zero entries
for "7.1.1" which is what my hypervisors are.  I went back to read 4.11.2.0 release notes
again on supported hypervisor lists and sure enough,  there is no mention of XenServer 7.1CU1
being supported.
    
    What changes are required on CloudStack side to add support for XenServer 7.1CU1 (aka
7.1.1)?  Would it be sufficient by adding missing mappings in guest_os_hypervsior table and
adding new entry in hypervisor_capabilities table?  Is there any code change required?
    
    Thanks
    
    Yiping
    
    On 1/29/19, 12:34 AM, "Andrija Panic" <andrija.panic@shapeblue.com> wrote:
    
        Yiping,
        
        Here is one more thing to check - please check your hypervisor version, as reported
inside cloud.host table:
        
        i.e.
        
        select id,name,hypervisor_type,hypervisor_version from host where type="Routing" and
removed is NULL;
        
        would in my lab return something like this:
        
        +----+------------+-----------------+--------------------+
        | id | name       | hypervisor_type | hypervisor_version |
        +----+------------+-----------------+--------------------+
        |  1 | 10.2.2.202 | VMware          | 6.5                |
        +----+------------+-----------------+--------------------+
        
        Check the version reported for your XenServer, I'm assuming it might report true version
after upgrade i.e. "7.1.2", for which there are NO mappings inside guest_os_hypervisor table
- if so, you would need to duplicate all the mapping records for XenServer 7.1.0 (or 7.0.0).
        
        Different way to say it :
        SELECT * FROM guest_os_hypervisor WHERE hypervisor_type="Xenserver" AND hypervisor_version
= "7.1.2";
        ...gives no result (there is no mapping from ACS guest OS to hypervisor guest OS)
        
        while
        
        SELECT * FROM guest_os_hypervisor WHERE hypervisor_type="Xenserver" AND hypervisor_version
= "7.1.0";
        ...would return many rows with proper mappings
        
        Check this, and we can work from there, once you confirm this might be the issue (there
are API calls to do this, or we can do it with SQL etc - add missing mappins).
        
        Kind regards,
        Andrija
        
        andrija.panic@shapeblue.com 
        https://na01.safelinks.protection.outlook.com/?url=www.shapeblue.com&amp;data=02%7C01%7Cyipzhang%40adobe.com%7C7be8d8c0b54748293cc308d6869e9335%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636844412977844955&amp;sdata=q3JwtIm6i8PGD%2BAZ71pNIbNw65b4123BNMfC%2FO71860%3D&amp;reserved=0
        Amadeus House, Floral Street, London  WC2E 9DPUK
        @shapeblue
          
         
        
        
        -----Original Message-----
        From: Andrija Panic <andrija.panic@shapeblue.com> 
        Sent: 29 January 2019 00:54
        To: users@cloudstack.apache.org
        Subject: RE: how to run rhel 6.x VM as PV VM on xenserver 7.1CU1?
        
        Additionally, I expect that following table is correct in sense of paper vs reality,
but always good to check: https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.citrix.com%2Fen-us%2Fxenserver%2F7-1%2Fsystem-requirements%2Fguest-os-support.html&amp;data=02%7C01%7Cyipzhang%40adobe.com%7C7be8d8c0b54748293cc308d6869e9335%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636844412977844955&amp;sdata=1jBk2oozYq2awyJGg%2Fx1vLIkVyB57w49IjRr3c%2Fpm60%3D&amp;reserved=0
        
        
        andrija.panic@shapeblue.com
        https://na01.safelinks.protection.outlook.com/?url=www.shapeblue.com&amp;data=02%7C01%7Cyipzhang%40adobe.com%7C7be8d8c0b54748293cc308d6869e9335%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636844412977844955&amp;sdata=q3JwtIm6i8PGD%2BAZ71pNIbNw65b4123BNMfC%2FO71860%3D&amp;reserved=0
        Amadeus House, Floral Street, London  WC2E 9DPUK @shapeblue
          
         
        
        
        -----Original Message-----
        From: Andrija Panic <andrija.panic@shapeblue.com>
        Sent: 29 January 2019 00:52
        To: users@cloudstack.apache.org
        Subject: RE: how to run rhel 6.x VM as PV VM on xenserver 7.1CU1?
        
        Hi Yiping,
        
        If you do the following SQL:    SELECT * FROM guest_os_hypervisor WHERE hypervisor_type="XenServer"
and hypervisor_version="7.1.0" AND guest_os_id IN (SELECT id FROM guest_os WHERE display_name="CentOS
6.4 (64-bit)");
        +-------------------+
        | guest_os_name     |
        +-------------------+
        | CentOS 6 (64-bit) |
        +-------------------+
        
        It basically shows you, that for ACS OS type called "CentOS 6.4 (64-bit)", this is
translated/matches/mapped to the "CentOS 6 (64-bit)" as seen from the XenServer 7.1.x hypervisor.

        Now, there IS a possibility that some of these mappings is incorrect...
        I would just go to XenServer and try to deploy manually (via XenCenter etc) a VM with
selecting the OS type from above SQL results set (CentOS 6 (64-bit)) and observe if it gets
provisioned as HVM or PV - if XenServer brings it as HVM, then you can see it's XenServer
making it HVM. But if XenServer starts that manually deployed VM as PV - then we can assume
some wrong mapping from ACS side.
        
        If you have time to test this, I'm also interested in root cause - since I saw with
7.1.x XenServer that you can't even restore a VM from snapshot, if you change OS type on existing
VM in ACS from, i.e. centos 6.4 to 6.5 etc.
        
        Kind regards,
        Andrija
        
        andrija.panic@shapeblue.com
        https://na01.safelinks.protection.outlook.com/?url=www.shapeblue.com&amp;data=02%7C01%7Cyipzhang%40adobe.com%7C7be8d8c0b54748293cc308d6869e9335%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636844412977844955&amp;sdata=q3JwtIm6i8PGD%2BAZ71pNIbNw65b4123BNMfC%2FO71860%3D&amp;reserved=0
        Amadeus House, Floral Street, London  WC2E 9DPUK @shapeblue
          
         
        
        
        -----Original Message-----
        From: Yiping Zhang <yzhang@marketo.com>
        Sent: 28 January 2019 23:16
        To: users@cloudstack.apache.org
        Subject: how to run rhel 6.x VM as PV VM on xenserver 7.1CU1?
        
        Hi, All:
        
        I have a large number of RHEL 6.x VM instances running in our ACS environment. Last
time when I upgraded our XenServer from 6.5SP1 to 7.0,   I have to change my templates to
assign OS TYPE as “RHEL 6.4 (64bit)” so that my VM instances can be started as PV instances.
Anything above “RHEL 6.5 (64bits)” would be started as HVM instances and they would get
stuck during boot.
        
        Last week, after I upgraded my lab hypervisors to use XenServer 7.1CU1,  all my (lab)
rhel 6.x VM instances would get started as HVM instances, thus stuck during boot.  I even
tried to change template’s OS TYPE to other types such as “rhel 5.10/5.0/6.0/, Other PV(64bit)”
etc without any luck.
        
        What did I miss?  My lab is running ACS 4.11.2.0 packages from Shapeblue.  According
to Citrix document, https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.citrix.com%2Fen-us%2Fxenserver%2F7-1%2Fdownloads%2Fvm-users-guide.pdf&amp;data=02%7C01%7Cyipzhang%40adobe.com%7C7be8d8c0b54748293cc308d6869e9335%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636844412977844955&amp;sdata=NEEXuScaso5iKld2CGnTo8DngBnEduLGukX6TfxTv0w%3D&amp;reserved=0,
 RHEL 6.x should always be started as PV instance. So why I only get HVM instances instead?
        
        Is it CloudStack or XenServer which decides an instance to be started as PV or HVM
instance?
        
        Thanks, all helps are appreciated.
        
        Yiping
        
        
        
        
    
    

Mime
View raw message