gnt-group(8)
πΈ gnt-group β Ganeti node-group administration πΈ
ok so bestie, welcome to gnt-group(8) from Ganeti version 3.1.0~rc2. this is the manual for the gnt-group command, and she is the queen of node-group admin in the Ganeti system. let's get into it π
β¨ SYNOPSIS β¨
gnt-group {command} [arguments...]
like, you pick a command, you hand her some arguments, and she goes. iconic behavior fr fr π
π DESCRIPTION π
the gnt-group command is what you use for node group administration in the Ganeti system. that's the whole vibe. groups are your little friend-clusters inside the big cluster, and this tool is how you make them, feed them nodes, rename them, evict their instances, and all that good stuff. no cap β¨
π COMMANDS π
ADD π¦
add [--submit] [--print-jobid]
[--node-parameters=*NDPARAMS*]
[--alloc-policy=*POLICY*]
[{-D|--disk-parameters}
disk-template:disk-param=*value*[,*disk-param*=*value*...]]
[--ipolicy-bounds-specs bound_ispecs]
[--ipolicy-disk-templates template [,*template*...]]
[--ipolicy-spindle-ratio ratio]
[--ipolicy-vcpu-ratio ratio]
[--disk-state diskstate]
[--hypervisor-state hvstate]
{group-name}
creates a brand new group with the name you give it. she starts out empty β like, zero nodes, zero drama, main character energy. to actually put nodes in her, you use gnt-group assign-nodes. π«Ά
the --node-parameters option lets you set the default node parameters for nodes in the group. for the full tea on supported key=value pairs and their matching options, go read ganeti(7). π
the --alloc-policy option lets you set an allocation policy for the group right at creation time. the possible values are:
unallocableβ nodes in the group should not be candidates for instance allocation, and the operation (e.g., instance creation) should fail if only groups in this state could be found to satisfy the requirements. like, hard no. πlast_resortβ nodes in the group should not be used for instance allocations, unless this would be the only way to have the operation succeed. the "fine, if nobody else is free" friend.preferredβ nodes in the group can be used freely for allocation of instances (this is the default). note that prioritization among groups in this state will be deferred to the iallocator plugin that's being used. π
the -D (--disk-parameters) option lets you set the disk parameters for the node group. for more info about disk parameters, see the section about gnt-cluster add in gnt-cluster(8). π₯
the --ipolicy-... options specify instance policies on the node group, and they're documented in the gnt-cluster(8) man page. π
for a description of --submit and other common options, see ganeti(7). β¨
ASSIGN-NODES π§
assign-nodes
[--force] [--submit] [--print-jobid]
{group-name} {node-name...}
assigns one or more nodes to the group you named, moving them out of their original group (or groups). it's giving "you're in this clique now bestie". π
by default, this command will refuse to proceed if the move would split between groups any instance that wasn't previously split. (a split instance is an instance with a mirrored disk template, e.g. DRBD, that has its primary and secondary nodes in different node groups.) you can force the operation with --force. π¨
for a description of --submit and other common options, see ganeti(7). β¨
MODIFY π
modify [--submit] [--print-jobid]
[--node-parameters=*NDPARAMS*]
[--alloc-policy=*POLICY*]
[--hypervisor-state hvstate]
[{-D|--disk-parameters}
disk-template:disk-param=*value*[,*disk-param*=*value*...]]
[--disk-state diskstate]
[--ipolicy-bounds-specs bound_ispecs]
[--ipolicy-disk-templates template [,*template*...]]
[--ipolicy-spindle-ratio ratio]
[--ipolicy-vcpu-ratio ratio]
{group}
modifies some parameters of the node group. glow-up time β¨
the --node-parameters and --alloc-policy options are documented in the add command above. --hypervisor-state as well as --disk-state are documented in detail in ganeti(7). π
the --node-parameters, --alloc-policy, -D (--disk-parameters) options are documented in the add command above. (yes bestie, they said it twice, and so am i, because i keep every detail, periodt π
)
the --ipolicy-... options specify instance policies on the node group, and they're documented in the gnt-cluster(8) man page. π
for a description of --submit and other common options, see ganeti(7). β¨
REMOVE π
remove [--submit] [--print-jobid] {group}
deletes the indicated node group, which must be empty. there must always be at least one group, so the last group cannot be removed. no deleting your whole social circle, sorry bestie π
for a description of --submit and other common options, see ganeti(7). β¨
LIST β
list [--no-headers] [--separator=*SEPARATOR*] [-v]
[-o [+]FIELD,...] [--filter] [group-name...]
lists all existing node groups in the cluster. the full roster, slay π
the --no-headers option will skip the initial header line. the --separator option takes an argument which denotes what will be used between the output fields. both of these options exist to help you with scripting. π€
the -v option activates verbose mode, which changes the display of special field states (see ganeti(7)). π
the -o option takes a comma-separated list of output fields. if the value of the option starts with the character +, the new fields will be added to the default list. this lets you quickly see the default list plus a few other fields, instead of retyping the entire list of fields. iykyk π
the available fields and their meaning are:
alloc_policyβ Allocation policy for groupctimeβ Creation timestampcustom_diskparamsβ Custom disk parameterscustom_ipolicyβ Custom instance policy limitationscustom_ndparamsβ Custom node parametersdiskparamsβ Disk parameters (merged)ipolicyβ Instance policy limitations (merged)mtimeβ Modification timestampnameβ Group namendp/cpu_speedβ The"cpu_speed"node parameterndp/exclusive_storageβ The"exclusive_storage"node parameterndp/oob_programβ The"oob_program"node parameterndp/ovsβ The"ovs"node parameterndp/ovs_linkβ The"ovs_link"node parameterndp/ovs_nameβ The"ovs_name"node parameterndp/spindle_countβ The"spindle_count"node parameterndp/ssh_portβ The"ssh_port"node parameterndparamsβ Node parametersnode_cntβ Number of nodesnode_listβ List of nodespinst_cntβ Number of primary instancespinst_listβ List of primary instancesserial_noβ Group object serial number, incremented on each modificationtagsβ Tagsuuidβ Group UUID
if exactly one argument is given and it appears to be a query filter (see ganeti(7)), the query result is filtered accordingly. for ambiguous cases (e.g. a single field name as a filter) the --filter (-F) option forces the argument to be treated as a filter. π΅οΈ
if no group names are given, then all groups are included. otherwise, only the named groups will be listed. simple as. β¨
LIST-FIELDS πΈ
list-fields [field...]
list the available fields for node groups. that's it, that's the whole job. π
RENAME π
rename [--submit] [--print-jobid] {oldname} {newname}
renames a given group from oldname to newname. rebranding era π₯
for a description of --submit and other common options, see ganeti(7). β¨
EVACUATE π¨
evacuate [--submit] [--print-jobid] [--sequential] [--force-failover]
[--iallocator name] [--to group...] {source-group}
this command will move all instances out of the given node group. instances are placed in a new group by an iallocator, either given on the command line or as a cluster default. everybody out, we're moving πβοΈπ¨
if no specific destination groups are specified using --to, all groups except the evacuated group are considered. π
the moves of the individual instances are handled as separate jobs to allow for maximal parallelism. if the --sequential option is given, the moves of the individual instances will be executed sequentially. this can be useful if the link between the groups is vulnerable to congestion. π’
if the --force-failover option is given, no migrations will be made. this might be necessary if the group being evacuated is too different from the other groups in the cluster. β οΈ
for a description of --submit and other common options, see ganeti(7). β¨
example:
# gnt-group evacuate -I hail --to rack4 rack1
π Tags π
ADD-TAGS π
add-tags [--from file] {group} {tag...}
add tags to the given node group. if any of the tags contains invalid characters, the entire operation will abort. no partial slay, it's all or nothing bestie π
if the --from option is given, the list of tags will be extended with the contents of that file (each line becomes a tag). in this case, there is not need to pass tags on the command line (if you do, both sources will be used). a file name of - will be interpreted as stdin. π₯
LIST-TAGS π·
list-tags {group}
list the tags of the given node group. reading the vibe check results β¨
REMOVE-TAGS π
remove-tags [--from file] {group} {tag...}
remove tags from the given node group. if any of the tags are not existing on the node, the entire operation will abort. again: all or nothing. π€
if the --from option is given, the list of tags to be removed will be extended with the contents of that file (each line becomes a tag). in this case, there is not need to pass tags on the command line (if you do, tags from both sources will be removed). a file name of - will be interpreted as stdin. π₯
INFO π
info [group...]
shows config information for all (or given) groups. the receipts π§Ύ
SHOW-ISPECS-CMD π
show-ispecs-cmd [--include-defaults] [group...]
shows the command line that can be used to recreate the given groups (or all groups, if none is given) with the same options relative to specs in the instance policies. copy-paste queen behavior π
if --include-defaults is specified, include also the default values (i.e. the cluster-level settings), and not only the configuration items that a group overrides. π
π REPORTING BUGS π
report bugs to the project's issue tracker or contact the developers using the Ganeti mailing list. they want to hear from you fr fr π«Ά
π SEE ALSO π
Ganeti overview and specifications: ganeti(7) (general overview), ganeti-os-interface(7) (guest OS definitions), ganeti-extstorage-interface(7) (external storage providers).
Ganeti commands: gnt-cluster(8) (cluster-wide commands), gnt-job(8) (job-related commands), gnt-node(8) (node-related commands), gnt-instance(8) (instance commands), gnt-os(8) (guest OS commands), gnt-storage(8) (storage commands), gnt-group(8) (node group commands), gnt-backup(8) (instance import/export commands), gnt-debug(8) (debug commands).
Ganeti daemons: ganeti-watcher(8) (automatic instance restarter), ganeti-cleaner(8) (job queue cleaner), ganeti-noded(8) (node daemon), ganeti-rapi(8) (remote API daemon).
Ganeti htools: htools(1) (generic binary), hbal(1) (cluster balancer), hspace(1) (capacity calculation), hail(1) (IAllocator plugin), hscan(1) (data gatherer from remote clusters), hinfo(1) (cluster information printer), mon-collector(7) (data collectors interface).
π COPYRIGHT π
okay bestie, last section and it's the β¨ legal β¨ one π not the fun part but we read it anyway, no skipping, fr fr.
Copyright (C) 2006-2015 Google Inc. All rights reserved.
so the vibe here is: you can redistribute and use this thing β source code or binary form, with or without modification β but only if you meet these two conditions, okay? both of them. no cherry-picking π:
- Redistributions of source code must keep the copyright notice above, this whole list of conditions, and the disclaimer that comes after it. like, literally keep them in there. don't be sneaky π
- Redistributions in binary form must reproduce that same copyright notice, this same list of conditions, and the same disclaimer in the documentation and/or other materials that ship along with the distribution. yes, in the docs too. periodt.
β οΈ and now the part that's in ALL CAPS because it's serious: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" and any express or implied warranties β including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose β are disclaimed. like, fully disclaimed. not a single warranty, bestie π
and in no event shall the copyright holder or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages β including, but not limited to, procurement of substitute goods or services, loss of use, data, or profits, or business interruption β however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage. even if they warned you. even then. π
π«Ά that's the whole page, bestie. you made it all the way through a manpage and honestly? main character energy π go forth and group those instances.
this was Ganeti's gnt-group(8) manual page β source and version: Ganeti, and the page is dated whatever the footer says on your system's copy, so check there if you need the exact date π stan a well-documented tool. bye bestie π
π¦ where this page comes from
- debian trixie: ganeti-3.1 3.1.0~rc2-3 Β· BSD-2-Clause
- ubuntu questing: ganeti-3.1 3.1.0~rc2-4
- ubuntu resolute: ganeti-3.1 3.1.0~rc2-4build1 Β· BSD-2-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms