The IML Team typically uses Vagrant and VirtualBox for day to day development tasks. The following guide will provide an overview of how to setup a development environment from scratch.
-
Clone the Integrated Manager For Lustre repo from Github:
git clone https://github.com/whamcloud/Vagrantfiles.git
-
Navigate to the
integrated-manager-for-lustre/vagrant
directory
-
Install Homebrew
Homebrew provides a package manager for macos. We will use this to install dependencies in the following steps. See the Homebrew website for installation instructions.
-
Install Vagrant and VirtualBox
Using the
brew cask
command:brew cask install vagrant virtualbox
-
Create the default hostonlyif needed by the cluster:
VBoxManage hostonlyif create
-
Bring up the cluster (manager, 2 mds, 2 oss, 2 client nodes)
vagrant up
-
You may want the latest packages from upstream repos. If so, run the following provisioner and restart the cluster
vagrant provision --provision-with=yum-update vagrant reload
-
Install IML. IML Can be installed using either rpm-based / systemd or docker. Install IML by using one of the following provisioning scripts:
-
Latest RPM from copr-devel
vagrant provision --provision-with=install-iml-devel
-
Local RPM Install
vagrant provision --provision-with=install-iml-local
-
Local Docker Install
vagrant provision --provision-with=install-iml-docker-local
-
RPM Install from a specific repo:
REPO_URI=<uri> vagrant provision --provision-with=install-iml-repouri
-
Docker Install from a specific repo:
REPO_URI=<uri> vagrant provision --provision-with=install-iml-docker-repouri
* Note there are other version specific provisioners available as well. See the Vagrantfile for these options.
-
-
Setup the clients
vagrant provision --provision-with=install-lustre-client,configure-lustre-client-network
-
Mount the clients:
-
ldiskfs or lvm based
vagrant provision --provision-with=mount-lustre-client
-
Second ldiskfs filesystem
vagrant provision --provision-with=mount-lustre-client-fs2
-
ZFS backed filesystem
vagrant provision --provision-with=mount-lustre-client-zfs
-
At this point you should be able to access the IML GUI on your host at https://localhost:8443
From here you can decide what type of setup to run.
-
Monitored Ldiskfs:
vagrant provision --provision-with=install-ldiskfs-no-iml,configure-lustre-network,create-ldiskfs-fs,create-ldiskfs-fs2,mount-ldiskfs-fs,mount-ldiskfs-fs2
-
Monitored ZFS:
vagrant provision --provision-with=install-zfs-no-iml,configure-lustre-network,create-pools,zfs-params,create-zfs-fs,mount-zfs-fs
-
Managed Mode:
-
vagrant provision --provision-with=deploy-managed-hosts adm
-
https://whamcloud.github.io/Online-Help/docs/Contributor_Docs/cd_Managed_ZFS.html
-
-
Monitored Ldiskfs with LVM Metadata:
vagrant provision --provision-with=install-ldiskfs-no-iml,configure-lustre-network,create-ldiskfs-lvm-fs,mount-ldiskfs-lvm-fs
-
Monitored Ldiskfs with LVM Metadata and HA:
vagrant provision --provision-with=install-ldiskfs-no-iml,configure-lustre-network,create-ldiskfs-lvm-fs,ha-ldiskfs-lvm-fs-prep VBOX_PASSWD=<ROOT_PW_HERE> vagrant provision --provision-with=ha-ldiskfs-lvm-fs-setup
-
Setup and mount the clients
vagrant provision --provision-with=install-lustre-client,configure-lustre-client-network,mount-lustre-client
This is tested on Windows 10 1909.
Ensure your Windows user home folder doesn't contain non-ASCII chracters. Common case would be when user name you entered when configuring Windows for first use, was Cyrillic. Windows and apps still don't properly support it, and there are issues with encoding in Ruby, Vagrant and shell scripts in case your home is something like C:\Users\Михаил
.
-
Install Chocolatey. If it fails with errors suggesting update of .NET Framework, go to Windows Update and get all the latest updates.
-
Install Vagrant and VirtualBox using Chocolatey:
choco install vagrant
choco upgrade virtualbox --version=6.0.6
Warning: there's an unresolved bug which causes guest CentOS 7 to kernel panic in VirtualBox 6.0.14 on modern Windows 10. Hence the requirement of VirtualBox 6.0.6. Details.
Further notes: VirtualBox Extensions 6.0.6 can't be built for CentOS 7. Details. It's fixed even further upstream (maybe 6.0.14 or later). This means you won't be able to use CentOS in VirtualBox as a development environment (screen resolution, shared folders and other features don't work). Workaround is to use VMWare Player, which is also available on Chocolatey.
- Bring up the cluster with
vagrant up
and continue as with MacOS.