ubicloud/model
Eren Başak 0b8d249c23 Add Disk IO to VM Host Healthchecks
The health checks in `VmHost#check_pulse` and `HostNexus#available?`
were simple SSH access attempts, but this was not sufficient for
detecting issues in the disks. This change adds a simple disk IO
to the health check commands.

The disk I/O added for the health check is a simple read from
/dev/zero into a random file in /tmp. This would be enough to detect
any obvious failures related to the disks. Note that, in cases of
multiple disks are mounted into the file system (`/`) via raid, this
approach may not detect a single disk failure as long as the system
works.

Note: Through the codebase, health checks for the monitor (`check_pulse`)
and progs (`available?`) are duplicated, which is also the case for
VM host. We can argue about unifying the health check and availability
detection in general as a next step. Still, I wanted to make some
deduplication by extracting the shell command to be used for health
check into a `VmHost` constant.

Future work: While some disk i/o would be enough to check for obvious problems,
as a future work we can consider monitoring SMART bits, preferably
with less frequency and less severity.
2024-10-29 11:05:28 +03:00
..
ai Introduce Inference Endpoints 2024-10-01 15:36:57 +02:00
dns_zone Add strand association to DnsZone model 2023-12-10 05:40:45 +01:00
github Delete any cache that not accessed in the last 7 days and keep usage at 10GB 2024-07-19 16:59:19 +03:00
minio Optimize thread usage in monitor 2024-05-03 17:13:11 +02:00
postgres Accept version as a parameter in Postgres creation endpoint 2024-10-25 13:44:27 +03:00
access_policy.rb Use UBID for model identifiers 2023-07-20 15:24:53 -07:00
access_tag.rb Add CI for group of VMs. 2023-08-25 14:12:16 -07:00
account.rb Create new project with managed admin policy instead of custom policy 2024-10-10 16:27:55 +03:00
address.rb Make one_to_many associations of addresses plural 2024-07-25 11:46:56 +03:00
api_key.rb Introduce API keys 2024-10-01 15:36:57 +02:00
applied_tag.rb Use destroy instead of delete 2023-08-01 11:58:57 +03:00
assigned_host_address.rb Simplify UBID usage in models 2023-07-25 11:04:26 +03:00
assigned_vm_address.rb Fix vm association in AssignedVmAddress 2024-07-25 11:46:56 +03:00
billing_info.rb Introduce billing details 2023-08-11 11:33:06 +03:00
billing_record.rb Add billed_by to billing rates 2024-10-16 13:56:06 +02:00
boot_image.rb Remove unnecessary explicit schedule values 2024-07-30 09:01:29 +03:00
cert.rb Avoid unnecessary autoloads in model files 2024-10-24 07:55:06 -07:00
certs_load_balancers.rb Load Balancer's Cert integration 2024-08-20 10:43:13 +02:00
deleted_record.rb Archive deleted records to a separate table 2023-08-01 11:58:57 +03:00
firewall.rb Update firewall model to access it with location 2024-07-31 14:26:54 +03:00
firewall_rule.rb Add Firewall backend support 2024-02-01 11:30:43 +01:00
firewalls_private_subnets.rb Make Firewalls assignable to multiple Subnets 2024-05-02 20:34:47 +02:00
github_installation.rb Fix GitHub installation configuration URL 2024-09-20 17:26:14 +03:00
github_runner.rb Add option to bypass runner deregistration and destroy vm immediately 2024-09-20 17:24:38 +03:00
globally_blocked_dnsname.rb Add globally blocked dnsnames to firewall rules 2024-03-13 10:50:40 +01:00
hetzner_host.rb Introduce Hetzner API support for IPv4 2023-06-19 13:12:05 +02:00
invoice.rb Set a fixed column width for the amount column in the invoice PDF 2024-10-01 12:16:08 +03:00
ipsec_tunnel.rb Avoid unnecessary autoloads in model files 2024-10-24 07:55:06 -07:00
load_balancer.rb Avoid unnecessary autoloads in model files 2024-10-24 07:55:06 -07:00
load_balancers_vms.rb Add Basic Load Balancing 2024-07-10 13:17:48 +02:00
nic.rb Avoid unnecessary autoloads in model files 2024-10-24 07:55:06 -07:00
page.rb Eagerly set pagerduty_client when freezing Page 2024-10-28 14:31:00 -07:00
payment_method.rb Introduce billing details 2023-08-11 11:33:06 +03:00
pci_device.rb Introduce PciDevice model 2024-05-07 16:10:05 +02:00
private_subnet.rb Add weighted subnet picking and ban some ranges 2024-10-25 14:38:41 +03:00
project.rb Avoid unnecessary autoloads in model files 2024-10-24 07:55:06 -07:00
project_invitation.rb Persist project invitation if account doesn't exists 2024-09-10 19:21:45 +03:00
project_quota.rb Allow to set customer quota for GitHub cache storage 2024-09-26 14:35:13 +03:00
semaphore.rb Simplify UBID usage in models 2023-07-25 11:04:26 +03:00
spdk_installation.rb Remove references to SPDK_LEGACY_VERSION. 2024-04-24 17:35:06 -07:00
sshable.rb Add connection and channel initialize durations to sshable log 2024-05-02 10:17:50 +03:00
storage_device.rb Move Sequel.insert_conflict plugin to base model 2024-04-17 18:49:52 +03:00
storage_key_encryption_key.rb Simplify UBID usage in models 2023-07-25 11:04:26 +03:00
strand.rb Revert "Add the implicit_subquery extension" 2024-10-17 12:15:05 +03:00
usage_alert.rb Add usage alerting based on the total consumption 2024-04-22 16:00:57 +02:00
vm.rb Avoid unnecessary autoloads in model files 2024-10-24 07:55:06 -07:00
vm_host.rb Add Disk IO to VM Host Healthchecks 2024-10-29 11:05:28 +03:00
vm_pool.rb Move out the underlying VM and IPv4 from the customer's project 2023-11-14 14:43:18 +03:00
vm_storage_volume.rb Download & use versioned images 2024-05-09 19:08:40 -07:00