[OmniOS-discuss] OmniOS LX Update

Dan McDonald danmcd at omniti.com
Thu Jul 21 00:38:45 UTC 2016


Hello folks!

I've now updated the bloody+LX repo:

  http://pkg.omniti.com/omnios/LX/

If you change your "omnios" publisher from bloody to this, you can get bloody PLUS the in-progress LX bits.

  pkg set-publisher -G http://pkg.omniti.com/omnios/bloody/ -g http://pkg.omniti.com/omnios/LX/ omnios

Also, don't forget to install the LX brand along with the update (LX is not tied to "entire" or any other incorporation currently):

  pkg install brand/lx

As with r151018 and later, the debug.illumos variant is available for DEBUG kernel BEs.

LX is now booting LX zones with appropriate configuration.  ipkg and lipkg zones should also boot without issue.  This project does require further regression testing on ipkg/lipkg zones, AND LX functional testing, plus unresolved design issues for proper integration into OmniOS (see below).

To install an LX zone, obtain a ZFS send stream with an LX image.  The Joyent image servers have plenty of these.  To use their latest CentOS image, one would do the following:

1.) Get information (including kernel version) about the image:

  https://images.joyent.com/images/5b7e86e4-2797-11e6-b7d7-cbe6a1a48791

   Note the 2.6.32 kernel version.

2.) Get the actual image:

  curl -o centos6.zss.gz https://images.joyent.com/images/5b7e86e4-2797-11e6-b7d7-cbe6a1a48791/file

3.) Create the zone.  Assign a vnic and zoneroot per normal, but also include the kernel version in zonecfg(1M):

# zonecfg -z lx0 export
create -b
set zonepath=/zones/lx0
set brand=lx
set autoboot=false
set ip-type=exclusive
add net
set physical=lx0
end
add attr
set name=kernel-version
set type=string
set value=2.6.32
end
# 

4.) Install the zone using the aforementioned image:

  zoneadm -z lx0 install -s /full/path/to/centos6.zss.gz

5.) Boot the zone.

6.) Login using zlogin to change root's password:

  zlogin lx0
  <motd + shell shows>
  passwd

7.) Use the /native tools to set up networking.  You may wish to place these into the CentOS startup system somewhere:

  /native/sbin/ipadm -t -T static -a <addr>/<prefix> <intf>/v4
  /native/sbin/route add default <router>

8.) Try LX stuff out.



I'd VERY MUCH appreciate people trying this out.  I'm not sure if LX will make it in for OmniOS r151020, but it's a stretch goal.  There are outstanding design issues with LX for OmniOS that need resolving.  These include (but are not limited to):

- How much of the Joyent image API do we want to use?  Porting all of vmadm(1M) is a NON-GOAL of this project.

- As of now, LX zones are "BE resistant", meaning libbe and beadm are not aware of them as entities.  At first, this seems mostly a feature, because the /native is just lofs-mounted read-only from the global zone.  On the other hand, it means the zone's root doesn't instantiate differently between BEs like it does in ipkg/lipkg zones.  My thoughts right now are for beadm(1M) to do something brand-appropriate for LX, but I'm not sure HOW that will happen yet.

- Right now "-s" for zoneadm install takes gzipped or uncompresses ZFS send streams.  Could it also take a snapshot pointer?  That way could lie an imgadm(1M) port, which is also a NON-GOAL.

- How do we suss out the appropriate kernel-version for each image, without going down {img,vm}adm?



Have fun with this.  I will be returning to LX later this week or early next.

Dan



More information about the OmniOS-discuss mailing list