services:rhev
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| services:rhev [2020/02/05 16:27] – djgalloway | services:rhev [2024/08/23 00:41] (current) – [Gluster] dmick | ||
|---|---|---|---|
| Line 2: | Line 2: | ||
| ===== Summary ===== | ===== Summary ===== | ||
| We have have a RHEV instance running on [[hardware: | We have have a RHEV instance running on [[hardware: | ||
| + | |||
| + | Currently the RHEV Hosts installed version is 4.3.5-1 | ||
| The [[http:// | The [[http:// | ||
| Line 10: | Line 12: | ||
| ===== Storage ===== | ===== Storage ===== | ||
| - | Two new storage chassis are being used as the storage nodes. | ||
| - | A third host, [[hardware:senta|senta01]], is configured as the arbiter node for the Gluster volume. | + | **Note: this was the original configuration. |
| + | < | ||
| + | |||
| + | A third host, [[hardware: | ||
| + | </ | ||
| ---- | ---- | ||
| ==== Gluster ==== | ==== Gluster ==== | ||
| - | All VMs (except the Hosted Engine which is on the '' | + | <del>All VMs (except the Hosted Engine which is on the '' |
| If there is a storage node failure, RHEV will use the remaining Gluster node and Gluster will automatically heal as part of the recovery process. | If there is a storage node failure, RHEV will use the remaining Gluster node and Gluster will automatically heal as part of the recovery process. | ||
| - | A single software RAID6 was decided upon as the most redundant and reliable storage configuration. | + | A single software RAID6 was decided upon as the most redundant and reliable storage configuration. |
| {{ : | {{ : | ||
| Line 52: | Line 57: | ||
| The Hypervisors (hv{01..04}) and Storage nodes (ssdstore{01..02}) have entries in ''/ | The Hypervisors (hv{01..04}) and Storage nodes (ssdstore{01..02}) have entries in ''/ | ||
| + | Note: it is important that the version of glusterfs packages on the hypervisors does not exceed the version on the storage nodes (i.e. client is older or equal to server). | ||
| ---- | ---- | ||
| ===== Creating New VMs ===== | ===== Creating New VMs ===== | ||
| + | ==== How-To ==== | ||
| + | - Log in | ||
| + | - Go to the **Virtual Machines** tab | ||
| + | - Click **New VM** | ||
| + | - General Settings | ||
| + | - **Cluster: | ||
| + | - **Operating System:** '' | ||
| + | - **Optimized for:** '' | ||
| + | - **Name:** Whatever you want | ||
| + | - Descriptions are also nice | ||
| + | - System | ||
| + | - **Memory Size:** Up to you (it can take '' | ||
| + | - **Total Virtual CPUs:** Also up to you | ||
| + | - High Availability | ||
| + | - **Highly Available: | ||
| + | - Set the **Priority** | ||
| + | - Boot Options | ||
| + | - Probably PXE then Hard Disk. This will boot to our Cobbler menu. | ||
| + | - You could also do CD-ROM then Hard Disk. Just check **Attach CD** and select the ISO (these are on '' | ||
| + | - **OK** | ||
| + | - Now highlight your new VM | ||
| + | - At the bottom, **Disks** tab | ||
| + | - **New** | ||
| + | - Set the **Size** | ||
| + | - **Storage Domain:** '' | ||
| + | - **Allocation Policy:** '' | ||
| + | - '' | ||
| + | - '' | ||
| + | - **OK** | ||
| + | - At the bottom, **Network Interfaces** tab | ||
| + | - **New** | ||
| + | - **Profile** should be '' | ||
| + | - **OK** | ||
| + | - Now power the VM up (green arrow) and open the console (little computer monitor icon) | ||
| + | - You can either | ||
| + | - Select an entry from the Cobbler PXE menu (if the new VM is **NOT** in the ansible inventory | ||
| + | - Make sure you press '' | ||
| + | - Add the host to the ansible inventory, and thus, Cobbler, DNS, and DHCP, then set a kickstart in the Cobbler Web UI (see below) | ||
| + | |||
| + | === Using a Kickstart with Cobbler === | ||
| + | The Sepia Cobbler instance has some kickstart profiles that will automate RHV VM installation. | ||
| + | |||
| + | Then run: | ||
| + | - '' | ||
| + | - '' | ||
| + | - '' | ||
| + | |||
| + | (See https:// | ||
| + | |||
| + | In cobbler, you can browse to the system and set the '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | === A note about installing RHEL/CentOS === | ||
| + | You need to specify the URL for the installation repo as a kernel parameter. | ||
| + | |||
| + | Otherwise you'll end up with an error like '' | ||
| + | |||
| ==== ovirt-guest-agent ==== | ==== ovirt-guest-agent ==== | ||
| After installing a new VM, be sure to install VM guest agent. | After installing a new VM, be sure to install VM guest agent. | ||
| Line 109: | Line 173: | ||
| - (Make sure you make these changes persistent for subsequent reboots. | - (Make sure you make these changes persistent for subsequent reboots. | ||
| - Edit network config | - Edit network config | ||
| + | - It's also probably beneficial to remove cloud-init: e.g., '' | ||
| + | - Even though cloud-init is purged, its grub.d settings still get read. | ||
| + | - It might work to just delete ''/ | ||
| + | - Modify it and get rid of any '' | ||
| + | - Run '' | ||
| ===== Troubleshooting ===== | ===== Troubleshooting ===== | ||
| Line 117: | Line 186: | ||
| ==== Emergency RHEV Web UI Access w/o VPN ==== | ==== Emergency RHEV Web UI Access w/o VPN ==== | ||
| In the event the OpenVPN gateway VM is inaccessible/ | In the event the OpenVPN gateway VM is inaccessible/ | ||
| + | |||
| + | ==== GFIDs listed in '' | ||
| + | This is https:// | ||
| + | |||
| + | As long as the unsynced entries are GFIDs only and they only appear under the arbiter (senta01) server, you can paste **just** the GFIDs into a ''/ | ||
| + | |||
| + | < | ||
| + | #!/bin/bash | ||
| + | set -ex | ||
| + | |||
| + | VOLNAME=ssdstorage | ||
| + | for id in $(gluster volume heal $VOLNAME info | egrep ' | ||
| + | file=$(find / | ||
| + | if [ $(getfattr -d -m . -e hex $(echo $file) | grep trusted.afr.$VOLNAME* | grep " | ||
| + | echo " | ||
| + | for i in $(getfattr -d -m . -e hex $(echo $file) |grep trusted.afr.$VOLNAME*|cut -f1 -d' | ||
| + | setfattr -x $i $(echo $file) | ||
| + | done | ||
| + | else | ||
| + | echo "not deleting xattr for gfid $id" | ||
| + | fi | ||
| + | done | ||
| + | </ | ||
| ---- | ---- | ||
| Line 138: | Line 230: | ||
| I used to have a summary of steps here but it's safer to just follow the [[https:// | I used to have a summary of steps here but it's safer to just follow the [[https:// | ||
| + | ==== VM has paused due to no storage space error ==== | ||
| + | We started seeing this issue on VMs like teuthology and it looks like it's a known bug I updated / | ||
| + | |||
| + | https:// | ||
| ==== Growing a VM's virtual disk ==== | ==== Growing a VM's virtual disk ==== | ||
| - Log into the [[https:// | - Log into the [[https:// | ||
| Line 163: | Line 259: | ||
| ==== Onlining Hot-Plugged CPU/RAM ==== | ==== Onlining Hot-Plugged CPU/RAM ==== | ||
| https:// | https:// | ||
| + | |||
| + | < | ||
| + | #!/bin/bash | ||
| + | # Based on script by William Lam - http:// | ||
| + | |||
| + | # Bring CPUs online | ||
| + | for CPU_DIR in / | ||
| + | do | ||
| + | CPU=${CPU_DIR## | ||
| + | echo "Found cpu: ' | ||
| + | CPU_STATE_FILE=" | ||
| + | if [ -f " | ||
| + | if grep -qx 1 " | ||
| + | echo -e " | ||
| + | else | ||
| + | echo -e " | ||
| + | echo 1 > " | ||
| + | fi | ||
| + | else | ||
| + | echo -e " | ||
| + | fi | ||
| + | done | ||
| + | |||
| + | # Bring all new Memory online | ||
| + | for RAM in $(grep line / | ||
| + | do | ||
| + | echo "Found ram: ${RAM} ..." | ||
| + | if [[ " | ||
| + | echo " | ||
| + | echo $RAM | sed " | ||
| + | else | ||
| + | echo " | ||
| + | fi | ||
| + | done | ||
| + | </ | ||
services/rhev.1580920057.txt.gz · Last modified: by djgalloway
