disk_type_ref field. This determines the storage tier and per-region cost for agent VMs.
The platform provides built-in disk types for the tiers it manages. A built-in is immutable. You cannot edit one or delete it outright, but you can disable it: murmur rm disk-type <name> takes a built-in out of resolution so nothing can select it, and murmur set disk-type <name> with no payload re-enables it. A disabled built-in still appears in murmur get disk-type, marked as disabled, so you can see what you turned off. You can add your own with murmur set.
A customer-managed placement in a region the built-ins do not price also needs a machine type of your own: a VM reads its compute rate from that entry and its storage rate from this one, so price every region your placements use in both.
See Pricing for the current
built-in disk rates and how disk storage contributes to a VM charge.
Fields
GCE spec fields
Setsubstrate: SUBSTRATE_GCP and provide gce:
Provisioned performance
Some GCE disk types let you choose IOPS and throughput when the disk is created; the rest work them out from the disk’s size. GCE rejects a request that sets a value its disk type works out for itself, so set exactly what the table says:
Disk types that aren’t in the table take neither value, and setting one is an
error.
On
hyperdisk-balanced the two values also constrain each other. At P IOPS,
throughput has to be between MAX(140, P/256) and MIN(2400, P/4) MiB/s: at
3,000 IOPS, that’s 140 to 750 MiB/s. A throughput outside that range can’t be
built at any size, so murmur rejects the disk type.
Performance belongs to the disk type, not to the
environment that references it. An environment picks a
disk type and a disk_size_gb; to offer a second performance level, add a
second disk type.
Disk types stored without these fields keep working, and their volumes get
whatever performance GCE picks for the size. Fill the values in the next time
you write one.
Disk types an agent VM cannot use
An agent VM has one disk and boots from it. GCE creates that disk together with the instance, from an image, in the instance’s zone. Four disk types can’t be used that way, so murmur rejects them whatever performance you give them.Disk size and provisioned IOPS
Size limits how much IOPS ahyperdisk-balanced volume can have, so a disk
type and a disk_size_gb that are each fine on their own can still be a
combination GCE won’t build. A volume of x GiB gets at least
MIN(500x, 3000) IOPS and at most MIN(500x, 160000):
So a 3,000-IOPS disk type needs at least 6 GiB. Pair one with a smaller
disk_size_gb and provisioning fails, with an error naming the environment,
the size, and the IOPS GCE would have given the volume. The same happens for a
size outside the 4 GiB to 64 TiB (65,536 GiB) range hyperdisk-balanced
supports.
An environment that leaves disk_size_gb unset uses the boot image’s size,
which murmur doesn’t know when the environment is written and so can’t weigh
against these bounds. That’s fine for a disk type that provisions nothing, but
pair an unset size with one that provisions IOPS or throughput and the
environment is rejected as soon as you write it:
provisions performance, which needs the disk size stated.
AWS spec fields
Setsubstrate: SUBSTRATE_AWS and provide aws:
io1 and io2 are provisioned-IOPS volume types, and DiskRegionConfig has no
field to carry an IOPS value, so a VM whose disk type names one is refused
before launch. The built-in murmur-io2 is affected: use murmur-gp3 for AWS.
An AWS agent VM is launched with two EBS volumes: a boot volume, and a volume
sized to the instance’s RAM that holds the memory image EC2 writes when the
agent sleeps. Both take the disk type the VM’s environment references, so that
type’s rate for the placement’s region prices both.
A machine type that does not preserve memory on sleep holds no memory image and
is launched with its boot volume alone.
DiskRegionConfig
Each entry in theregions map contains:
A disk costs
cost_per_gib_month × disk_size_gb + performance_cost_per_month
per month. The performance charge doesn’t scale with size because provisioned
performance doesn’t either: 3,000 IOPS costs the same on a 20 GiB disk as on a
2,000 GiB one. Rolling it into the per-GiB price would overcharge big disks and
undercharge small ones.
Only set performance_cost_per_month on a disk type that provisions
performance. pd-* types get their IOPS and throughput from capacity, and
murmur never sets IOPS or throughput on an AWS volume, so on those there’s no
fixed performance to charge for. Use 0.
Examples
Listing disk types
murmur-io2 (disabled — re-enable: murmur set disk-type murmur-io2).
murmur-io2 is listed because the platform really does return it, but a VM that
references it is refused before launch, as described under
AWS spec fields. Use murmur-gp3 for AWS, and
murmur rm disk-type murmur-io2 if you want it out of resolution entirely.
Reading a single disk type
GCP disk type shape
This built-in shape shows its current production regions. Theregions map
lists where the entry is priced. A VM takes its storage rate from its disk type
and its compute rate from its machine type, so price
every region your placements use in both entries.
GCP Hyperdisk disk type shape
AWS disk type shape
This built-in shape follows the same region-scoped pricing rule.Errors
Related
- Environments and placements: the resource that references a disk type via
disk_type_ref murmur get: CLI command for reading catalog resources- placement: catalog resource for cloud infrastructure targets