Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[vSphere Provider] Optimize the log, and remove the part for connecting NIC in Python #39143

Merged
merged 3 commits into from
Aug 31, 2023

Conversation

JingChen23
Copy link
Contributor

Signed-off-by: Chen Jing jingch@vmware.com

Description

This is one of the tech debt.
The philosopy of this change is:

For the one-time operation during ray up, such has creating the tag category, and the tags on vSphere, still using cli_logger.info
For the other code which will be executed both during ray up and by the autoscaler in the head node, I use the logger.
I changed many logs to debug level, except for the important ones, such as create a VM, delete a VM and reuse the existing VM.

This change also removes a logic for connecting NIC. We don't need that part anymore, because we will have one script in the customze.sh scirpt planted in the frozen VM which does the job. This script will be exectued once right after instant cloning.

Test

Have tried doing ray up with --verbose and without --verbose, there is no exception, and the logs are expected. The Ray cluster finally works fine.
Have tried to change the log level of python code to debug in /ray/python/ray/_private/ray_constants/py, and did file mount to mount this file to the head node.
Verified that debug logs can shown during ray up, and also in the log of the head node.

Have also tested that we can bring up a Ray cluster on vSphere with the network correctly connected.

Signed-off-by: Chen Jing <jingch@vmware.com>
Signed-off-by: Chen Jing <jingch@vmware.com>
Signed-off-by: Chen Jing <jingch@vmware.com>
@architkulkarni architkulkarni self-assigned this Aug 31, 2023
Copy link
Contributor

@architkulkarni architkulkarni left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me!

To be clear, how does the user trigger these debug logs to show up? Is it via --verbose?

@architkulkarni
Copy link
Contributor

Windows tests, doctest, and k8s chaos tests unrelated. This PR only touches the vSphere node provider

@architkulkarni architkulkarni added the tests-ok The tagger certifies test failures are unrelated and assumes personal liability. label Aug 31, 2023
@architkulkarni architkulkarni merged commit e307825 into ray-project:master Aug 31, 2023
85 of 92 checks passed
@JingChen23
Copy link
Contributor Author

Looks good to me!

To be clear, how does the user trigger these debug logs to show up? Is it via --verbose?

Thanks Archit for the approval.

The verbose flag will not trigger the debug log. What I did is to modify the log level to "debug" in this file:
/ray/python/ray/_private/ray_constants.py

I ran setup-dev.py, so this file's log level change will take effect during ray up.

For the autoscaler, actually I added dir /ray/python/ray/_private/ into file mount to replace the code in the head node, and it shows the debug level log.

That is a little hacky, but I see that in the doc, it tells people to change the log level in python code...

@JingChen23 JingChen23 deleted the PROT-167 branch August 31, 2023 23:58
LeonLuttenberger pushed a commit to jaidisido/ray that referenced this pull request Sep 5, 2023
…ng NIC in Python (ray-project#39143)

This is one of the tech debt.
The philosopy of this change is:

For the one-time operation during ray up, such has creating the tag category, and the tags on vSphere, still using cli_logger.info
For the other code which will be executed both during ray up and by the autoscaler in the head node, I use the logger.
I changed many logs to debug level, except for the important ones, such as create a VM, delete a VM and reuse the existing VM.

This change also removes a logic for connecting NIC. We don't need that part anymore, because we will have one script in the customze.sh scirpt planted in the frozen VM which does the job. This script will be exectued once right after instant cloning.

---------

Signed-off-by: Chen Jing <jingch@vmware.com>
harborn pushed a commit to harborn/ray that referenced this pull request Sep 8, 2023
…ng NIC in Python (ray-project#39143)

This is one of the tech debt.
The philosopy of this change is:

For the one-time operation during ray up, such has creating the tag category, and the tags on vSphere, still using cli_logger.info
For the other code which will be executed both during ray up and by the autoscaler in the head node, I use the logger.
I changed many logs to debug level, except for the important ones, such as create a VM, delete a VM and reuse the existing VM.

This change also removes a logic for connecting NIC. We don't need that part anymore, because we will have one script in the customze.sh scirpt planted in the frozen VM which does the job. This script will be exectued once right after instant cloning.

---------

Signed-off-by: Chen Jing <jingch@vmware.com>
jimthompson5802 pushed a commit to jimthompson5802/ray that referenced this pull request Sep 12, 2023
…ng NIC in Python (ray-project#39143)

This is one of the tech debt.
The philosopy of this change is:

For the one-time operation during ray up, such has creating the tag category, and the tags on vSphere, still using cli_logger.info
For the other code which will be executed both during ray up and by the autoscaler in the head node, I use the logger.
I changed many logs to debug level, except for the important ones, such as create a VM, delete a VM and reuse the existing VM.

This change also removes a logic for connecting NIC. We don't need that part anymore, because we will have one script in the customze.sh scirpt planted in the frozen VM which does the job. This script will be exectued once right after instant cloning.

---------

Signed-off-by: Chen Jing <jingch@vmware.com>
Signed-off-by: Jim Thompson <jimthompson5802@gmail.com>
architkulkarni pushed a commit to architkulkarni/ray that referenced this pull request Sep 28, 2023
…ng NIC in Python (ray-project#39143)

This is one of the tech debt.
The philosopy of this change is:

For the one-time operation during ray up, such has creating the tag category, and the tags on vSphere, still using cli_logger.info
For the other code which will be executed both during ray up and by the autoscaler in the head node, I use the logger.
I changed many logs to debug level, except for the important ones, such as create a VM, delete a VM and reuse the existing VM.

This change also removes a logic for connecting NIC. We don't need that part anymore, because we will have one script in the customze.sh scirpt planted in the frozen VM which does the job. This script will be exectued once right after instant cloning.

---------

Signed-off-by: Chen Jing <jingch@vmware.com>
GeneDer pushed a commit that referenced this pull request Sep 29, 2023
* [Doc] Add vSphere Ray cluster launcher user guide (#39630)

Similar as other providers, this change adds a user guide for vSphere Ray cluster launcher,
including how to prepare the vSphere environment and the frozen VM, as well as the general
steps to launch the cluster. It also contains a section on how to use vSAN File Service to
provision NFS endpoints as persistent storage for Ray AIR, with a new example YAML file.

In addition to that, existing examples and docs are updated to include the correct command
to install vSphere Python SDK.

Signed-off-by: Fangchi Wang wfangchi@vmware.com

Why are these changes needed?
As mentioned in PR #39379 , we need a dedicated user guide for launching Ray clusters on vSphere. This change does that with a newly added vsphere.md, including a solution for Ray 2.7's deprecation of syncing to head node for Ray AIR, using VMware vSAN File Service.

---------

Signed-off-by: Fangchi Wang <wfangchi@vmware.com>
Co-authored-by: Archit Kulkarni <architkulkarni@users.noreply.github.com>

* [vSphere Provider] Optimize the log, and remove the part for connecting NIC in Python (#39143)

This is one of the tech debt.
The philosopy of this change is:

For the one-time operation during ray up, such has creating the tag category, and the tags on vSphere, still using cli_logger.info
For the other code which will be executed both during ray up and by the autoscaler in the head node, I use the logger.
I changed many logs to debug level, except for the important ones, such as create a VM, delete a VM and reuse the existing VM.

This change also removes a logic for connecting NIC. We don't need that part anymore, because we will have one script in the customze.sh scirpt planted in the frozen VM which does the job. This script will be exectued once right after instant cloning.

---------

Signed-off-by: Chen Jing <jingch@vmware.com>

* [Cluster launcher] [vSphere] Support deploying one frozen VM, or a set of frozen VMs from OVF, then do ray up. (#39783)

Bug fix
The default.yaml file was not built into the Python wheel, also not in the setup.py scirpt. This change added it.
New features
1. Support creating Ray nodes from a set of frozen VMs in a resource pool.
The motivation is when doing instant clone, the new VM must be on the same ESXi host with the parent VM. Previously we have only one frozen VM. The Ray nodes created from that frozen VM need to be relocated to other ESXi hosts by vSphere DRS. After this change, we can do round robin on the ESXi hosts to do instant clone to create the Ray nodes. We save the overhead of doing DRS.

2. Support creating the frozen VM, or a set of frozen VMs from OVF template.
This feature helps save some manual steps when the user has no existing frozen vm(s) but has an OVF template. Previously the user must manully login onto vSphere and deploy a frozen VM from the OVF first. Now we covered this fucntionality in ray up.

3. Support powering on the frozen VM when the VM is at powered off status when doing ray up, we will wait the frozen VM is really "frozen", then do ray up.
Previously we have code logic to power on the frozen VM, but we will not wait it until it is frozen (usually need 2 mins or so). This is a bug actually. In this change we add a function called "wait_until_frozen" to resolve this issue.

4. Some code refactoring work. We split the vsphere sdk related code into another Python file.
5. Update the yaml example files and the corresponding docs for above changes.

---------

Signed-off-by: Chen Jing <jingch@vmware.com>

* [Doc] Update the vSphere cluster Launcher Maintainer. (#39758)

Since Vinod has left the company, we need to update the vSphere Launcher maintainer list to add Roshan and Chen. Roshan acts as Vinod's successor, while Chen will be responsible for overseeing Ray-OSS and facilitating open-source development collaboration.

Signed-off-by: Layne Peng <playne@vmware.com>

---------

Signed-off-by: Fangchi Wang <wfangchi@vmware.com>
Signed-off-by: Chen Jing <jingch@vmware.com>
Signed-off-by: Layne Peng <playne@vmware.com>
Co-authored-by: Fangchi Wang <wfangchi@vmware.com>
Co-authored-by: Chen Jing <jingch@vmware.com>
Co-authored-by: Layne Peng <appamail@hotmail.com>
vymao pushed a commit to vymao/ray that referenced this pull request Oct 11, 2023
…ng NIC in Python (ray-project#39143)

This is one of the tech debt.
The philosopy of this change is:

For the one-time operation during ray up, such has creating the tag category, and the tags on vSphere, still using cli_logger.info
For the other code which will be executed both during ray up and by the autoscaler in the head node, I use the logger.
I changed many logs to debug level, except for the important ones, such as create a VM, delete a VM and reuse the existing VM.

This change also removes a logic for connecting NIC. We don't need that part anymore, because we will have one script in the customze.sh scirpt planted in the frozen VM which does the job. This script will be exectued once right after instant cloning.

---------

Signed-off-by: Chen Jing <jingch@vmware.com>
Signed-off-by: Victor <vctr.y.m@example.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
tests-ok The tagger certifies test failures are unrelated and assumes personal liability.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants