openmainframeproject / feilong

Feilong is a open source z/VM cloud connector project under the Open Mainframe Project umbrella that will accelerate the z/VM adoption, extending its ecosystem and its user experience. It provides a set of APIs to operate z/VM including guest, image, network, volume etc.
https://www.openmainframeproject.org/projects/feilong
Apache License 2.0
36 stars 70 forks source link

zOS support #751

Open VitekVlcek-Broadcom opened 1 year ago

VitekVlcek-Broadcom commented 1 year ago

It would be great if Feilong supported zOS lifecycle, where zOS is 2nd level zVM guest:

  1. IPL zOS,
  2. Stop zOS
  3. invoke MVS commands (D IPLINFO, ...) and capture their response

My understanding is that Feilong runs a zlinux under zVM, what it is resource consumption of this image (average CPU utilization, Memory, Disk). In my case I would ideally avoid extra VM with zlinux to reduce memory and CPU resources because I'm running zVM under zD&T (zPDT)

I already have a POC version implemented off the Feilong project here is an architecture diagram: zos and feilong

bjhuangr commented 1 year ago

currently, feilong rely on the IUCV channel to communicate with SMAPI request servers, so it has to stay in the same z/VM system. We don't have performance data like cpu consumption of feilong services, but according to our daily use, it's relatively a light weight service

jichenjc commented 1 year ago

from the picture I think you are proposing LXC and other CMS related components to hosting feilong like Linux but provisioning z/OS Is not hard depend on the LXC related item, is that correct?

VitekVlcek-Broadcom commented 1 year ago

LXC is used to issue CP commands Q NAMES, CP SEND CP ZOS1 CP IPL ..., CP SEND CP ZOS1 VINPUT VMSG D IPLINFO, CP SET OBSERVER ... from a linux VM running off the zVM. In this scenario, Feilong is not running in zLinux under zVM. This picture covers only the start/stop scenario of zOS. Provisioning of zOS is out of scope. We could discuss late what it means to provision zOS it is not that easy like in case of linux, provisioning involves multiples volumes.

jichenjc commented 1 year ago

correct, that's what I am expecting about z/OS itself ,we can talk about at next meeting if you can record/show the env that you have now it might be easier to understand

Thanks~


From: Vitek Vlcek @.> Sent: Thursday, October 12, 2023 8:14 PM To: openmainframeproject/feilong @.> Cc: CHEN JI @.>; Comment @.> Subject: [EXTERNAL] Re: [openmainframeproject/feilong] zOS support (Issue #751)

LXC is used to issue CP commands Q NAMES, CP SEND CP ZOS1 CP IPL .. . , CP SEND CP ZOS1 VINPUT VMSG D IPLINFO, CP SET OBSERVER .. . from a linux VM running off the zVM. In this scenario, Feilong is not running in zLinux under zVM. This picture ZjQcmQRYFpfptBannerStart This Message Is From an External Sender This message came from outside your organization. https://us-phishalarm-ewt.proofpoint.com/EWT/v1/PjiDSg!2A-qKrTUgROxke9zkqrvJs6yI8Q_iH1OjKqdnawhJKhS7JHeoCcjUMUMy5lLDLq1OvNLpVJdCC5YjG9howfYQK8Qi2FTSyHSfw0TABjigR_bAD65C6hd$ Report Suspicious

ZjQcmQRYFpfptBannerEnd

LXC is used to issue CP commands Q NAMES, CP SEND CP ZOS1 CP IPL ..., CP SEND CP ZOS1 VINPUT VMSG D IPLINFO, CP SET OBSERVER ... from a linux VM running off the zVM. In this scenario, Feilong is not running in zLinux under zVM. This picture covers only the start/stop scenario of zOS. Provisioning of zOS is out of scope. We could discuss late what it means to provision zOS it is not that easy like in case of linux, provisioning involves multiples volumes.

— Reply to this email directly, view it on GitHubhttps://github.com/openmainframeproject/feilong/issues/751#issuecomment-1759487911, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AEGMXPKGWOASCMU3KHFDKUDX67NJPANCNFSM6AAAAAA4WYVSIA. You are receiving this because you commented.Message ID: @.***>

mfriesenegger commented 1 year ago

@VitekVlcek-Broadcom We mentioned this issue during today's Feilong TSC meeting. I see @jichenjc suggested demoing the env. Is this something you would like to do for the January Feilong meeting?

Bischoff commented 10 months ago

Hi Vitek, I have seen with interest your demo of your first PoC relying on LXC.

My observations:

mfriesenegger commented 10 months ago

Hello Eric,

  • I was first confused by "LXC" name, as it is a well known containers system under Linux 😸

I believe this LXC - https://www.vm.ibm.com/download/packages/descript.cgi?LXC - predates the Linux LXC technology that you are thinking of.

jichenjc commented 10 months ago

I am quite confused whether zthin component of Feilong needs IUCV to communicate with SMAPI. @bjhuangr says above it does, but 1) I think SMAPI can also be driven with IP sockets, and 2) we accidentally got Feilong to work while we forgot IUCV settings 🤔 . If IUCV is not mandatory, then you could put zthin or even a full Feilong outside of the s390 host.

IUCV is used for Linux VM communication, SMAPI is for VM management through z/VM DIRMAINT/CPU SMAPI is pure socket thing and feilong covers both SMAPI and IUCV for different purpose you can create VM USER DIRECT through DIRAMINT but it might not fit feilong whole purpose which covers Linux part as well

However, I do not know whether Feilong assumes it is a Linux system that is being deployed. For example you can access the IP address of the guest, I am not sure how this is achieved and if Feilong needs to access the guest OS to achieve that.

the access to IP address is beyong feilong scope, we used to use ssh to do management but this means this need management entity need ssh to VM which is some case it's security concern and sometimes the network is not reachable at all, so we use IUCV instead

If I were you, I would just try to start and stop an existing zOS system with Feilong, to see if that works.

if it's z/VM guest, I see no reason why those 2 are not supported (as it will be z/VM Start/Stop through Image_Activate and Deactivate API which is pure SMAPI thing which interpret as CP command only)

Bischoff commented 10 months ago

Thanks for the clarifications @jichenjc. The schema at https://cloudlib4zvm.readthedocs.io/en/latest/architecture.html#internal-architecture had mislead me, I suggest in another issue to fix it.

To summarize this discussion:

These are just personal thoughts. I do not represent the Feilong project in any way.

VitekVlcek-Broadcom commented 10 months ago

Thanks @Bischoff for the summary, I would love to use SMAPI instead of LXC however. LXC is used for:

  1. start/stop zVM - there should be API calls (based on your reply)
  2. send a command to a VM console eg: Q NAMES, CP SEND CP ZOS1 CP IPL ..., CP SEND CP ZOS1 VINPUT VMSG D IPLINFO, CP SET OBSERVER ... - is there a SMAPI endpoint for it?
jichenjc commented 10 months ago

start/stop zVM - there should be API calls (based on your reply)

yes, this is easier , Image_Activate/Deactivate I shared above

send a command to a VM console eg: Q NAMES, CP SEND CP ZOS1 CP IPL ..., CP SEND CP ZOS1 VINPUT VMSG D IPLINFO, CP SET OBSERVER ... - is there a SMAPI endpoint for it?

we can create a customerized API doing so https://www.ibm.com/docs/en/zvm/7.3?topic=programming-creating-custom-apis

we used to have a API that can do so and it trigger some security concern as if something like CP <input command> then it's able to do everything which we don't want