Page Not Found | OSISM
-
+
diff --git a/assets/js/08ca43f3.33faca0b.js b/assets/js/08ca43f3.33faca0b.js
new file mode 100644
index 0000000000..afb1817cb8
--- /dev/null
+++ b/assets/js/08ca43f3.33faca0b.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkosism=self.webpackChunkosism||[]).push([[5655],{9524:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>i,metadata:()=>a,toc:()=>d});var o=s(5893),t=s(1151);const i={sidebar_label:"Ceph",sidebar_position:50},r="Ceph operations cheatsheet",a={id:"guides/operations-guide/ceph",title:"Ceph operations cheatsheet",description:"Where to find docs",source:"@site/docs/guides/operations-guide/ceph.md",sourceDirName:"guides/operations-guide",slug:"/guides/operations-guide/ceph",permalink:"/docs/guides/operations-guide/ceph",draft:!1,unlisted:!1,editUrl:"https://github.com/osism/osism.github.io/tree/main/docs/guides/operations-guide/ceph.md",tags:[],version:"current",sidebarPosition:50,frontMatter:{sidebar_label:"Ceph",sidebar_position:50},sidebar:"tutorialSidebar",previous:{title:"Task",permalink:"/docs/guides/operations-guide/manager/task"},next:{title:"OpenStack",permalink:"/docs/guides/operations-guide/openstack/"}},l={},d=[{value:"Where to find docs",id:"where-to-find-docs",level:2},{value:"Advice on Ceph releases",id:"advice-on-ceph-releases",level:2},{value:"General maintenance",id:"general-maintenance",level:2},{value:"60 seconds cluster overview",id:"60-seconds-cluster-overview",level:3},{value:"Mute/Unmute a health warning",id:"muteunmute-a-health-warning",level:3},{value:"Disable/Enable (deep-)scrubbing",id:"disableenable-deep-scrubbing",level:3},{value:"Reboot a single node",id:"reboot-a-single-node",level:3},{value:"Gathering information about block devices",id:"gathering-information-about-block-devices",level:2},{value:"Enumerate typical storage devices and LVM",id:"enumerate-typical-storage-devices-and-lvm",level:3},{value:"SMART data for SATA/SAS and NVME devices",id:"smart-data-for-satasas-and-nvme-devices",level:3},{value:"Check format of a NVME device",id:"check-format-of-a-nvme-device",level:3},{value:"Format a NVME device to a different LBA format using nvme-cli",id:"format-a-nvme-device-to-a-different-lba-format-using-nvme-cli",level:3},{value:"Secure Erase a NVME drive using nvme-cli",id:"secure-erase-a-nvme-drive-using-nvme-cli",level:3},{value:"Secure Erase a SATA/SAS drive using hdparm",id:"secure-erase-a-satasas-drive-using-hdparm",level:3},{value:"OSD maintenance tasks",id:"osd-maintenance-tasks",level:2},{value:"Locate a specific OSD in the cluster",id:"locate-a-specific-osd-in-the-cluster",level:3},{value:"Get OSD metadata (global and single OSD)",id:"get-osd-metadata-global-and-single-osd",level:3},{value:"Add a new OSD",id:"add-a-new-osd",level:3},{value:"Remove a OSD",id:"remove-a-osd",level:3},{value:"Replace a defect OSD",id:"replace-a-defect-osd",level:3},{value:"Remove a single OSD node",id:"remove-a-single-osd-node",level:3},{value:"Remove an OSD (removing it completely, not reprovisioning it again) without double rebalance",id:"remove-an-osd-removing-it-completely-not-reprovisioning-it-again-without-double-rebalance",level:3},{value:"Remove an OSD (temporarily e.g. when replacing a broken disk)",id:"remove-an-osd-temporarily-eg-when-replacing-a-broken-disk",level:3},{value:"Disable backfills/recovery completely",id:"disable-backfillsrecovery-completely",level:3},{value:"Rebalance OSDs",id:"rebalance-osds",level:3},{value:"Placement Group maintenance",id:"placement-group-maintenance",level:2},{value:"Dump placement groups",id:"dump-placement-groups",level:3},{value:"Query a PG about its status",id:"query-a-pg-about-its-status",level:3},{value:"Start (deep-)scrubbing of a placement group",id:"start-deep-scrubbing-of-a-placement-group",level:3},{value:"HEALTH_WARN - Large omap objects found...",id:"health_warn---large-omap-objects-found",level:3},{value:"Instruct a PG to repair in case of scrub errors (inconsistent PG)",id:"instruct-a-pg-to-repair-in-case-of-scrub-errors-inconsistent-pg",level:3},{value:"RADOS Pool maintenance",id:"rados-pool-maintenance",level:2},{value:"Get pools and their configuration",id:"get-pools-and-their-configuration",level:3},{value:"Dump all CRUSH rules",id:"dump-all-crush-rules",level:3},{value:"Get autoscaler status",id:"get-autoscaler-status",level:3},{value:"Create a replicated pool",id:"create-a-replicated-pool",level:3},{value:"Enabling an application on a pool",id:"enabling-an-application-on-a-pool",level:3},{value:"Delete a pool",id:"delete-a-pool",level:3},{value:"Set number of PGs for a pool",id:"set-number-of-pgs-for-a-pool",level:3},{value:"Create CRUSH rules for different storage classes",id:"create-crush-rules-for-different-storage-classes",level:3},{value:"Change CRUSH rule for a pool ("move pool")",id:"change-crush-rule-for-a-pool-move-pool",level:3},{value:"Advanced topics",id:"advanced-topics",level:2},{value:"Validating Ceph using OSISM playbooks",id:"validating-ceph-using-osism-playbooks",level:3},{value:"Shutdown a Ceph cluster",id:"shutdown-a-ceph-cluster",level:3},{value:"Restart a Ceph cluster after manual shutdown",id:"restart-a-ceph-cluster-after-manual-shutdown",level:3},{value:"Where and how to get further help",id:"where-and-how-to-get-further-help",level:2}];function c(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,t.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.h1,{id:"ceph-operations-cheatsheet",children:"Ceph operations cheatsheet"}),"\n",(0,o.jsx)(n.h2,{id:"where-to-find-docs",children:"Where to find docs"}),"\n",(0,o.jsxs)(n.p,{children:["The official Ceph documentation is located on ",(0,o.jsx)(n.a,{href:"https://docs.ceph.com/en/latest",children:"https://docs.ceph.com/en/latest"})]}),"\n",(0,o.jsxs)(n.p,{children:["It is ",(0,o.jsx)(n.strong,{children:"strongly advised"})," to use the documentation for the version being used."]}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["Pacific - ",(0,o.jsx)(n.a,{href:"https://docs.ceph.com/en/pacific",children:"https://docs.ceph.com/en/pacific"})]}),"\n",(0,o.jsxs)(n.li,{children:["Quincy - ",(0,o.jsx)(n.a,{href:"https://docs.ceph.com/en/quincy",children:"https://docs.ceph.com/en/quincy"})]}),"\n",(0,o.jsxs)(n.li,{children:["Reef - ",(0,o.jsx)(n.a,{href:"https://docs.ceph.com/en/reef",children:"https://docs.ceph.com/en/reef"})]}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:["ceph-ansible documentation is located on ",(0,o.jsx)(n.a,{href:"https://docs.ceph.com/projects/ceph-ansible/en/latest/",children:"https://docs.ceph.com/projects/ceph-ansible/en/latest/"})]}),"\n",(0,o.jsxs)(n.admonition,{type:"note",children:[(0,o.jsxs)(n.p,{children:["Do not take information in the documentation at face value.\nEspecially when it comes to advanced/rarely used/very new features it is ",(0,o.jsx)(n.strong,{children:"strongly advised"}),"\nto test any claims made in the documentation about any particular feature."]}),(0,o.jsx)(n.p,{children:"Never assume that things will work as written without actually testing it on a test setup\nas close to your real workload scenario as possible."})]}),"\n",(0,o.jsx)(n.h2,{id:"advice-on-ceph-releases",children:"Advice on Ceph releases"}),"\n",(0,o.jsxs)(n.p,{children:["The current Ceph releases and their support status can be found on ",(0,o.jsx)(n.a,{href:"https://docs.ceph.com/en/latest/releases/",children:"https://docs.ceph.com/en/latest/releases/"})]}),"\n",(0,o.jsxs)(n.p,{children:["When a new Ceph stable version is released you are ",(0,o.jsx)(n.strong,{children:"strongly advised"}),"\nto not roll it out on any production cluster whatsoever.\nEven though its listed as \"stable\" it doesn't mean that this is actually true.\nEspecially avoid using .0 releases on anything remotely production\nunless you really, really now what you're doing and can live with a possible catastrophic failure."]}),"\n",(0,o.jsxs)(n.p,{children:["Be ",(0,o.jsx)(n.strong,{children:"very"})," conservative about what version you run on production systems."]}),"\n",(0,o.jsx)(n.p,{children:"Shiny new features aren't worth the risk of total or partial data loss/corruption."}),"\n",(0,o.jsx)(n.h2,{id:"general-maintenance",children:"General maintenance"}),"\n",(0,o.jsx)(n.h3,{id:"60-seconds-cluster-overview",children:"60 seconds cluster overview"}),"\n",(0,o.jsx)(n.p,{children:"The following commands can be used to quickly check the status of Ceph:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph -s # Print overall cluster status\n$ ceph health detail # Print detailed health information\n$ ceph osd tree # Display current OSD tree\n$ ceph df # Cluster storage usage by pool and storage class\n$ ceph osd pool ls detail # List pools with detailed configuration\n$ ceph osd df {plain|tree} {class e.g. hdd|ssd} # Get usage stats for OSDs\n$ ceph -w # Watch Ceph health messages sequentially\n$ ceph versions # List daemon versions running in the cluster\n"})}),"\n",(0,o.jsx)(n.p,{children:"Also you can run the following on each node running ceph-daemons,\nto provide further debug information about the environment:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# lscpu\n# cat /proc/cpuinfo # if lscpu isn't available\n# free -g\n# ip l\n# ethtool # for each network adapter\n"})}),"\n",(0,o.jsx)(n.h3,{id:"muteunmute-a-health-warning",children:"Mute/Unmute a health warning"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph health mute \n$ ceph health unmute \n"})}),"\n",(0,o.jsx)(n.h3,{id:"disableenable-deep-scrubbing",children:"Disable/Enable (deep-)scrubbing"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph osd set noscrub\n$ ceph osd set nodeep-scrub\n$ ceph osd unset noscrub\n$ ceph osd unset nodeep-scrub\n"})}),"\n",(0,o.jsx)(n.admonition,{type:"warning",children:(0,o.jsx)(n.p,{children:"Use this sparingly only in emergency situations.\nSetting these flags will cause a HEALTH_WARN status,\nincrease risk of data corruption and also the risk of generating\na HEALTH_WARN due to PGs not being (deep-)scrubbed in time."})}),"\n",(0,o.jsx)(n.h3,{id:"reboot-a-single-node",children:"Reboot a single node"}),"\n",(0,o.jsxs)(n.p,{children:["The traditional way of doing this is by setting the ",(0,o.jsx)(n.code,{children:"noout"})," flag,\ndo the appropriate maintenance work and after the node is back online\nunset the flag like so:"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"ceph osd set noout\n"})}),"\n",(0,o.jsx)(n.p,{children:"After maintenance is done and host is back up:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"ceph osd unset noout\n"})}),"\n",(0,o.jsx)(n.p,{children:"On versions Luminous or above you can set the flag individually for single\nOSDs or entire CRUSH buckets, which can be a safer option in case of prolonged\nmaintenance periods."}),"\n",(0,o.jsx)(n.p,{children:"Add noout for a OSD:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"ceph osd add-noout osd.\n"})}),"\n",(0,o.jsx)(n.p,{children:"Remove noout for a OSD:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"ceph osd rm-noout osd.\n"})}),"\n",(0,o.jsxs)(n.p,{children:["Add noout for CRUSH bucket (e.g. host name as seen in ",(0,o.jsx)(n.code,{children:"ceph osd tree"}),"):"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"ceph osd set-group noout \n"})}),"\n",(0,o.jsx)(n.p,{children:"Remove noout for CRUSH bucket:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"ceph osd unset-group noout \n"})}),"\n",(0,o.jsx)(n.h2,{id:"gathering-information-about-block-devices",children:"Gathering information about block devices"}),"\n",(0,o.jsx)(n.h3,{id:"enumerate-typical-storage-devices-and-lvm",children:"Enumerate typical storage devices and LVM"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# lsblk\n# lsblk -S\n# lsscsi\n# nvme list\n# pvs\n# vgs\n# lvs\n"})}),"\n",(0,o.jsx)(n.h3,{id:"smart-data-for-satasas-and-nvme-devices",children:"SMART data for SATA/SAS and NVME devices"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# smartctl -a /dev/sdX\n# nvme smart-log /dev/nvmeXnY\n"})}),"\n",(0,o.jsx)(n.h3,{id:"check-format-of-a-nvme-device",children:"Check format of a NVME device"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# nvme id-ns -H /dev/nvmeXnY\n"})}),"\n",(0,o.jsx)(n.admonition,{type:"note",children:(0,o.jsx)(n.p,{children:'Check the last lines named "LBA Format".\nIt will show which formats are supported,\nwhich format is in use and which format offers the best performance\naccording to the vendor.'})}),"\n",(0,o.jsx)(n.h3,{id:"format-a-nvme-device-to-a-different-lba-format-using-nvme-cli",children:"Format a NVME device to a different LBA format using nvme-cli"}),"\n",(0,o.jsx)(n.admonition,{type:"warning",children:(0,o.jsx)(n.p,{children:"This will destroy all data on the device!"})}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# nvme format --lbaf= /dev/nvmeXnY\n"})}),"\n",(0,o.jsx)(n.h3,{id:"secure-erase-a-nvme-drive-using-nvme-cli",children:"Secure Erase a NVME drive using nvme-cli"}),"\n",(0,o.jsx)(n.admonition,{type:"warning",children:(0,o.jsx)(n.p,{children:"This will destroy all data on the device!"})}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# nvme format -s2 /dev/nvmeXnY\n# blkdiscard /dev/nvmeXnY\n# nvme format -s1 /dev/nvmeXnY\n"})}),"\n",(0,o.jsx)(n.h3,{id:"secure-erase-a-satasas-drive-using-hdparm",children:"Secure Erase a SATA/SAS drive using hdparm"}),"\n",(0,o.jsx)(n.admonition,{type:"warning",children:(0,o.jsx)(n.p,{children:"This will destroy all data on the device!"})}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"Gather device info:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# hdparm -I /dev/sdX\n"})}),"\n"]}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:["Check that the output says ",(0,o.jsx)(n.strong,{children:'"not frozen"'})," and ",(0,o.jsx)(n.strong,{children:'"not locked"'}),",\nalso it should list support for enhanced erase and list time estimates\nfor ",(0,o.jsx)(n.strong,{children:"SECURITY ERASE UNIT"})," and/or ",(0,o.jsx)(n.strong,{children:"ENHANCED SECURITY ERASE UNIT"})]}),"\n",(0,o.jsxs)(n.ol,{start:"2",children:["\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"Set a master password for the disk (required, will be automatically removed after wipe)"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# hdparm --user-master wipeit --security-set-pass wipeit /dev/sdX\n# hdparm -I /dev/sdX\n"})}),"\n",(0,o.jsxs)(n.p,{children:['Check that "Security level" is now ',(0,o.jsx)(n.strong,{children:'"high"'})," and master password is now\n",(0,o.jsx)(n.strong,{children:'"enabled"'})," instead of ",(0,o.jsx)(n.strong,{children:'"not enabled"'})," before"]}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"Wipe the device"}),"\n",(0,o.jsx)(n.p,{children:"If device supports enhanced security erase (better), use the following:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# hdparm --user-master wipeit --security-erase-enhanced wipeit /dev/sdX\n"})}),"\n",(0,o.jsx)(n.p,{children:"If not, use standard security erase:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# hdparm --user-master wipeit --security-erase wipeit /dev/sdX\n"})}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(n.admonition,{type:"note",children:(0,o.jsxs)(n.p,{children:['On some systems the system firmware might "freeze" the device,\nwhich makes it impossible to issue a secure erase or reformat the device.\nIn that case it might be necessary to either "unfreeze" the drive or\nto install the drive in another system where it can be unfrozen.\nAlso make sure that the device is ',(0,o.jsx)(n.em,{children:"actually"})," wiped. Its recommended to\nat least perform a blanking pass on HDDs with a tool like nwipe."]})}),"\n",(0,o.jsx)(n.h2,{id:"osd-maintenance-tasks",children:"OSD maintenance tasks"}),"\n",(0,o.jsx)(n.h3,{id:"locate-a-specific-osd-in-the-cluster",children:"Locate a specific OSD in the cluster"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph osd find osd.\n"})}),"\n",(0,o.jsx)(n.h3,{id:"get-osd-metadata-global-and-single-osd",children:"Get OSD metadata (global and single OSD)"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph osd metadata\n$ ceph osd metadata osd.\n"})}),"\n",(0,o.jsx)(n.admonition,{type:"note",children:(0,o.jsx)(n.p,{children:"Interesting fields:\nosd_objectstore, rotational, hostname, devices, device_ids, device_paths,\nbluefs_db_rotational, bluefs_wal_rotational,\nbluefs_dedicated_db, bluefs_dedicated_wal,\nbluestore_bdev_rotational"})}),"\n",(0,o.jsx)(n.h3,{id:"add-a-new-osd",children:"Add a new OSD"}),"\n",(0,o.jsx)(n.h3,{id:"remove-a-osd",children:"Remove a OSD"}),"\n",(0,o.jsx)(n.h3,{id:"replace-a-defect-osd",children:"Replace a defect OSD"}),"\n",(0,o.jsx)(n.h3,{id:"remove-a-single-osd-node",children:"Remove a single OSD node"}),"\n",(0,o.jsx)(n.h3,{id:"remove-an-osd-removing-it-completely-not-reprovisioning-it-again-without-double-rebalance",children:"Remove an OSD (removing it completely, not reprovisioning it again) without double rebalance"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph osd crush reweight osd. 0.0\n... Wait for rebalance to complete, then mark it OUT:\n$ ceph osd out osd.\n# systemctl stop ceph-osd@\n# systemctl disable ceph-osd@\n$ ceph osd purge osd. --yes-i-really-mean-it\n"})}),"\n",(0,o.jsx)(n.h3,{id:"remove-an-osd-temporarily-eg-when-replacing-a-broken-disk",children:"Remove an OSD (temporarily e.g. when replacing a broken disk)"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph osd out osd.\n# systemctl stop ceph-osd@\n# systemctl disable ceph-osd@\n"})}),"\n",(0,o.jsx)(n.h3,{id:"disable-backfillsrecovery-completely",children:"Disable backfills/recovery completely"}),"\n",(0,o.jsx)(n.admonition,{type:"warning",children:(0,o.jsx)(n.p,{children:"Use only in emergency situations!"})}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph osd set nobackfill\n$ ceph osd set norecovery\n$ ceph osd set norebalance\n"})}),"\n",(0,o.jsxs)(n.p,{children:["Unset the flags with ",(0,o.jsx)(n.code,{children:"ceph osd unset "}),"."]}),"\n",(0,o.jsx)(n.h3,{id:"rebalance-osds",children:"Rebalance OSDs"}),"\n",(0,o.jsx)(n.h2,{id:"placement-group-maintenance",children:"Placement Group maintenance"}),"\n",(0,o.jsx)(n.h3,{id:"dump-placement-groups",children:"Dump placement groups"}),"\n",(0,o.jsx)(n.p,{children:"Usually only useful when parsing it, so here are two ways to get the data:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph pg dump\n$ ceph pg dump --format=json-pretty\n"})}),"\n",(0,o.jsx)(n.h3,{id:"query-a-pg-about-its-status",children:"Query a PG about its status"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph pg query\n"})}),"\n",(0,o.jsx)(n.h3,{id:"start-deep-scrubbing-of-a-placement-group",children:"Start (deep-)scrubbing of a placement group"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph pg scrub \n$ ceph pg deep-scrub \n"})}),"\n",(0,o.jsx)(n.admonition,{type:"note",children:(0,o.jsx)(n.p,{children:"Instructing a PG to (deep-)scrub does not mean that it will do so immediately,\nit can take some time for the scrub to start."})}),"\n",(0,o.jsx)(n.h3,{id:"health_warn---large-omap-objects-found",children:"HEALTH_WARN - Large omap objects found..."}),"\n",(0,o.jsx)(n.p,{children:"Finding PGs which have large OMAP objects:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# ceph pg dump --format=json | jq '.pg_map.pg_stats[] |\nselect(.stat_sum.num_large_omap_objects != 0) |\n(.pgid, .stat_sum.num_large_omap_objects, .up, .acting)'\n"})}),"\n",(0,o.jsxs)(n.p,{children:["(Remove the line breaks between the single quotes or ",(0,o.jsx)(n.code,{children:"jq"})," might act weird!)"]}),"\n",(0,o.jsxs)(n.p,{children:["This will dump all PG IDs with large OMAP objects and their up/acting OSDs.\nYou then can grep the logs of these OSDs for ",(0,o.jsx)(n.strong,{children:'"Large omap object"'}),"\nto find the actual objects causing the health warning."]}),"\n",(0,o.jsx)(n.p,{children:"Also the PG ID before the dot is equal to the pool ID it belongs to."}),"\n",(0,o.jsx)(n.p,{children:"In case the logs have been rotated, instruct those OSDs to do a deep-scrub\nand watch the logs for the message to appear."}),"\n",(0,o.jsx)(n.p,{children:"From there you can investigate the issue further,\nmostly it'll be due to the index of a RGW bucket getting too big due to too many objects,\nthus resharding that bucket's index will be necessary."}),"\n",(0,o.jsx)(n.h3,{id:"instruct-a-pg-to-repair-in-case-of-scrub-errors-inconsistent-pg",children:"Instruct a PG to repair in case of scrub errors (inconsistent PG)"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph pg repair \n"})}),"\n",(0,o.jsxs)(n.admonition,{type:"note",children:[(0,o.jsxs)(n.p,{children:["Recovery might not start immediately and might take some time.\nYou can query the status of the recovery through ",(0,o.jsx)(n.code,{children:"ceph pg query"}),".\nBe sure to read the Ceph manual about this topic ",(0,o.jsx)(n.em,{children:"thoroughly"}),":"]}),(0,o.jsx)(n.p,{children:(0,o.jsx)(n.a,{href:"https://docs.ceph.com/en/latest/rados/operations/pg-repair/",children:"https://docs.ceph.com/en/latest/rados/operations/pg-repair/"})})]}),"\n",(0,o.jsx)(n.h2,{id:"rados-pool-maintenance",children:"RADOS Pool maintenance"}),"\n",(0,o.jsxs)(n.admonition,{type:"note",children:[(0,o.jsx)(n.p,{children:"Read the RADOS pool operations documentation in detail before playing around with pools.\nEspecially when considering making changes to the CRUSH map.\nWrong decisions there can lead to data loss or other catastrophic failures."}),(0,o.jsx)(n.p,{children:(0,o.jsx)(n.a,{href:"https://docs.ceph.com/en/latest/rados/operations/pools/",children:"https://docs.ceph.com/en/latest/rados/operations/pools/"})})]}),"\n",(0,o.jsx)(n.h3,{id:"get-pools-and-their-configuration",children:"Get pools and their configuration"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph osd pool ls detail\n"})}),"\n",(0,o.jsx)(n.h3,{id:"dump-all-crush-rules",children:"Dump all CRUSH rules"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph osd crush rule dump\n"})}),"\n",(0,o.jsx)(n.h3,{id:"get-autoscaler-status",children:"Get autoscaler status"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph osd pool autoscale-status\n"})}),"\n",(0,o.jsx)(n.h3,{id:"create-a-replicated-pool",children:"Create a replicated pool"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph osd pool create replicated []\n"})}),"\n",(0,o.jsx)(n.h3,{id:"enabling-an-application-on-a-pool",children:"Enabling an application on a pool"}),"\n",(0,o.jsx)(n.p,{children:"Required, otherwise a health warning will be raised after some time."}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph osd pool application enable # Syntax\n$ ceph osd pool application enable cinder rbd # Example\n"})}),"\n",(0,o.jsx)(n.p,{children:"Typical application names are: rbd, rgw, cephfs"}),"\n",(0,o.jsx)(n.h3,{id:"delete-a-pool",children:"Delete a pool"}),"\n",(0,o.jsx)(n.admonition,{type:"warning",children:(0,o.jsx)(n.p,{children:"This will delete all data in that pool. There is no undo/undelete."})}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph osd pool delete --yes-i-really-really-mean-it\n"})}),"\n",(0,o.jsxs)(n.admonition,{type:"note",children:[(0,o.jsxs)(n.p,{children:["In order to be able to delete pools, it has to be enabled on the monitors\nby setting the ",(0,o.jsx)(n.code,{children:"mon_allow_pool_delete"})," flag to true. Default is false."]}),(0,o.jsxs)(n.p,{children:["See: ",(0,o.jsx)(n.a,{href:"https://docs.ceph.com/en/latest/rados/configuration/mon-config-ref",children:"https://docs.ceph.com/en/latest/rados/configuration/mon-config-ref"})]})]}),"\n",(0,o.jsx)(n.h3,{id:"set-number-of-pgs-for-a-pool",children:"Set number of PGs for a pool"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph osd pool set pg_num \n"})}),"\n",(0,o.jsxs)(n.admonition,{type:"note",children:[(0,o.jsx)(n.p,{children:"Num PGs must be a power of two! Be careful about changing number of PGs.\nChanging pg_num to a new value will gradually increase pgp_num on newer versions of Ceph."}),(0,o.jsx)(n.p,{children:"In older versions one also has to set pgp_num manually, either in increments or in one big leap."})]}),"\n",(0,o.jsx)(n.h3,{id:"create-crush-rules-for-different-storage-classes",children:"Create CRUSH rules for different storage classes"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph osd crush rule create-replicated replicated_hdd default host hdd\n$ ceph osd crush rule create-replicated replicated_ssd default host ssd\n$ ceph osd crush rule create-replicated replicated_nvme default host nvme\n"})}),"\n",(0,o.jsx)(n.h3,{id:"change-crush-rule-for-a-pool-move-pool",children:'Change CRUSH rule for a pool ("move pool")'}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph osd pool set crush_rule \n"})}),"\n",(0,o.jsx)(n.p,{children:"This can be used to move a pool from e.g. HDD to SSD or NVME class\nor anything else that the new CRUSH rule specifies."}),"\n",(0,o.jsx)(n.h2,{id:"advanced-topics",children:"Advanced topics"}),"\n",(0,o.jsx)(n.h3,{id:"validating-ceph-using-osism-playbooks",children:"Validating Ceph using OSISM playbooks"}),"\n",(0,o.jsxs)(n.p,{children:["For Ceph, special playbooks were added to validate the deployment status of\nthe OSD, MON and MGR services. The commands for use are ",(0,o.jsx)(n.code,{children:"osism validate ceph-osds"}),",\n",(0,o.jsx)(n.code,{children:"osism validate ceph-mons"}),", and ",(0,o.jsx)(n.code,{children:"osism validate ceph-mgrs"}),"."]}),"\n",(0,o.jsxs)(n.p,{children:["These playbooks will validate that the deployed Ceph environment matches\nthe configuration and is overall in a healthy state. The playbooks will\ngenerate report files in JSON format on the first manager node in ",(0,o.jsx)(n.code,{children:"/opt/reports/validator"}),"."]}),"\n",(0,o.jsx)(n.h3,{id:"shutdown-a-ceph-cluster",children:"Shutdown a Ceph cluster"}),"\n",(0,o.jsx)(n.p,{children:"In order to fully shutdown a Ceph cluster safely, you first do the following steps:"}),"\n",(0,o.jsx)(n.admonition,{type:"warning",children:(0,o.jsx)(n.p,{children:"Take GOOD NOTES of the unit names and OSD IDs running on each node.\nYou will need them to restart the cluster later."})}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"Stop the workload that is using the cluster"}),"\n",(0,o.jsx)(n.p,{children:"This will vary depending on your environment and is not covered here."}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"Pause/Stop operations on the cluster by setting flags"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph osd set noout\n$ ceph osd set nobackfill\n$ ceph osd set norecover\n$ ceph osd set norebalance\n$ ceph osd set nodown\n$ ceph osd set pause\n"})}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsxs)(n.p,{children:["Stop and disable the ",(0,o.jsx)(n.code,{children:"radosgw"})," services on all nodes (on each rgw node) (if RGW is used)"]}),"\n",(0,o.jsx)(n.p,{children:"Get the name of the unit (globs not supported for disable) and\nmake a note of the unit name for that node:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# systemctl | grep ceph-radosgw\n"})}),"\n",(0,o.jsx)(n.p,{children:"Then disable and stop the unit:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# systemctl disable --now ceph-radosgw@.service\n"})}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"Stop all CephFS file systems (if CephFS is used)"}),"\n",(0,o.jsx)(n.p,{children:"List all Ceph file systems"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph fs ls\n"})}),"\n",(0,o.jsx)(n.p,{children:"For each CephFS do:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph fs down true\n"})}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsxs)(n.p,{children:["After that disable and stop all ",(0,o.jsx)(n.code,{children:"ceph-mds"})," services on all nodes (do this on each node)"]}),"\n",(0,o.jsx)(n.p,{children:"Get the name of the unit (globs not supported for disable) and\nmake a note of the unit name for that node:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# systemctl | grep ceph-mds\n"})}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# systemctl disable --now ceph-mds@.service\n"})}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsxs)(n.p,{children:["Stop and disable the ",(0,o.jsx)(n.code,{children:"ceph-mgr"})," services on all nodes (do this on each node)"]}),"\n",(0,o.jsx)(n.p,{children:"Get the name of the unit (globs not supported for disable) and\nmake a note of the unit name for that node:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# systemctl | grep ceph-mgr\n"})}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# systemctl disable --now ceph-mgr@.service\n"})}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsxs)(n.p,{children:["Stop and disable the ",(0,o.jsx)(n.code,{children:"ceph-osd"})," services on all nodes (do this on each node)"]}),"\n",(0,o.jsx)(n.p,{children:"Get the names of the units (globs not supported for disable) and\nmake a note of the unit names for that node (best to save it to a file):"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# systemctl | grep ceph-osd\n"})}),"\n",(0,o.jsx)(n.p,{children:"For each OSD unit execute:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# systemctl disable ceph-osd@.service\n"})}),"\n",(0,o.jsx)(n.p,{children:"Stop all OSDs at once:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# systemctl stop ceph-osd\\*.service\n"})}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsxs)(n.p,{children:["Finally stop the ",(0,o.jsx)(n.code,{children:"ceph-mon"})," services on all nodes (do this on each node)"]}),"\n",(0,o.jsx)(n.p,{children:"Get the name of the unit (globs not supported for disable) and\nmake a note of the unit name for that node:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# systemctl | grep ceph-mon\n"})}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# systemctl disable --now ceph-mon@.service\n"})}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(n.h3,{id:"restart-a-ceph-cluster-after-manual-shutdown",children:"Restart a Ceph cluster after manual shutdown"}),"\n",(0,o.jsx)(n.admonition,{type:"warning",children:(0,o.jsxs)(n.p,{children:["You will need the notes taken during shutdown of the unit names.\nIt ",(0,o.jsx)(n.strong,{children:"can"})," be done without, but then it'll be way more work finding out the names."]})}),"\n",(0,o.jsx)(n.p,{children:"In order to restart a Ceph cluster after performing a manual shutdown like described\nin the section above, you do the following:"}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsxs)(n.p,{children:["Enable & start the ",(0,o.jsx)(n.code,{children:"ceph-mon"})," services on all nodes (do this on each node)"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# systemctl enable --now ceph-mon@.service\n"})}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsxs)(n.p,{children:["Enable & start the ",(0,o.jsx)(n.code,{children:"ceph-osd"})," services on all nodes (do this on each node)"]}),"\n",(0,o.jsx)(n.p,{children:"For each Ceph OSD on that node do:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# systemctl enable --now ceph-osd@.service\n"})}),"\n",(0,o.jsx)(n.p,{children:"Depending on the number of OSDs on that node it can take a while."}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsxs)(n.p,{children:["Enable & start the ",(0,o.jsx)(n.code,{children:"ceph-mgr"})," services on all nodes (do this on each node)"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# systemctl enable --now ceph-mgr@.service\n"})}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"Check the status of your cluster and wait for all OSDs to come online"}),"\n",(0,o.jsx)(n.p,{children:"You can watch the status periodically by running:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ watch ceph -s\n"})}),"\n",(0,o.jsx)(n.p,{children:"You should wait until all OSDs are up + in again, before removing flags."}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"Remove flags to unpause operations"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph osd unset pause\n$ ceph osd unset nodown\n$ ceph osd unset noout\n$ ceph osd unset nobackfill\n$ ceph osd unset norecover\n$ ceph osd unset norebalance\n"})}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"Wait for cluster to resume operations"}),"\n",(0,o.jsx)(n.p,{children:'See step #4 of this SOP.\nNow you wait until the cluster seems "happy enough" to accept clients.\n(i.e. rebalancing finished etc.)\nMaybe it will complain about MDS being down, but that\'s normal for now.'}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsxs)(n.p,{children:["Enable & start the ",(0,o.jsx)(n.code,{children:"ceph-mds"})," services on each node (if CephFS is used)"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# systemctl enable --now ceph-mds@.service\n"})}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"Start CephFS file systems again"}),"\n",(0,o.jsx)(n.p,{children:"List all Ceph file systems"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph fs ls\n"})}),"\n",(0,o.jsx)(n.p,{children:"For each CephFS do:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph fs down false\n"})}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsxs)(n.p,{children:["Enable & start the ",(0,o.jsx)(n.code,{children:"radosgw"})," services on each node (if RGW is used)"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# systemctl enable --now ceph-radosgw@.service\n"})}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(n.h2,{id:"where-and-how-to-get-further-help",children:"Where and how to get further help"}),"\n",(0,o.jsxs)(n.p,{children:["Join the ",(0,o.jsx)(n.strong,{children:"#ceph"})," IRC channel on ",(0,o.jsx)(n.strong,{children:"irc.oftc.net"}),', state the problem with as many details as possible\nincluding information about what steps have already been taken to solve the problem\nalso provide information from the command output from the "60 seconds cluster overview" above\nthrough a pastebin or a similar service. In order for people to be able\nto help, details and some patience are important.']})]})}function h(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},1151:(e,n,s)=>{s.d(n,{Z:()=>a,a:()=>r});var o=s(7294);const t={},i=o.createContext(t);function r(e){const n=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),o.createElement(i.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/08ca43f3.ce3dd527.js b/assets/js/08ca43f3.ce3dd527.js
deleted file mode 100644
index 9c6d376c0b..0000000000
--- a/assets/js/08ca43f3.ce3dd527.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkosism=self.webpackChunkosism||[]).push([[5655],{9524:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>t,metadata:()=>r,toc:()=>d});var o=s(5893),i=s(1151);const t={sidebar_label:"Ceph",sidebar_position:50},a="Ceph operations cheatsheet",r={id:"guides/operations-guide/ceph",title:"Ceph operations cheatsheet",description:"Where to find docs",source:"@site/docs/guides/operations-guide/ceph.md",sourceDirName:"guides/operations-guide",slug:"/guides/operations-guide/ceph",permalink:"/docs/guides/operations-guide/ceph",draft:!1,unlisted:!1,editUrl:"https://github.com/osism/osism.github.io/tree/main/docs/guides/operations-guide/ceph.md",tags:[],version:"current",sidebarPosition:50,frontMatter:{sidebar_label:"Ceph",sidebar_position:50},sidebar:"tutorialSidebar",previous:{title:"Task",permalink:"/docs/guides/operations-guide/manager/task"},next:{title:"OpenStack",permalink:"/docs/guides/operations-guide/openstack/"}},l={},d=[{value:"Where to find docs",id:"where-to-find-docs",level:2},{value:"Advice on Ceph releases",id:"advice-on-ceph-releases",level:2},{value:"General maintenance",id:"general-maintenance",level:2},{value:"60 seconds cluster overview",id:"60-seconds-cluster-overview",level:3},{value:"Mute/Unmute a health warning",id:"muteunmute-a-health-warning",level:3},{value:"Disable/Enable (deep-)scrubbing",id:"disableenable-deep-scrubbing",level:3},{value:"Reboot a single node",id:"reboot-a-single-node",level:3},{value:"Gathering information about block devices",id:"gathering-information-about-block-devices",level:2},{value:"Enumerate typical storage devices and LVM",id:"enumerate-typical-storage-devices-and-lvm",level:3},{value:"SMART data for SATA/SAS and NVME devices",id:"smart-data-for-satasas-and-nvme-devices",level:3},{value:"Check format of a NVME device",id:"check-format-of-a-nvme-device",level:3},{value:"Format a NVME device to a different LBA format using nvme-cli",id:"format-a-nvme-device-to-a-different-lba-format-using-nvme-cli",level:3},{value:"Secure Erase a NVME drive using nvme-cli",id:"secure-erase-a-nvme-drive-using-nvme-cli",level:3},{value:"Secure Erase a SATA/SAS drive using hdparm",id:"secure-erase-a-satasas-drive-using-hdparm",level:3},{value:"OSD maintenance tasks",id:"osd-maintenance-tasks",level:2},{value:"Locate a specific OSD in the cluster",id:"locate-a-specific-osd-in-the-cluster",level:3},{value:"Get OSD metadata (global and single OSD)",id:"get-osd-metadata-global-and-single-osd",level:3},{value:"Add a new OSD using ceph-ansible",id:"add-a-new-osd-using-ceph-ansible",level:3},{value:"Remove a OSD using ceph-ansible",id:"remove-a-osd-using-ceph-ansible",level:3},{value:"Replace a defect OSD",id:"replace-a-defect-osd",level:3},{value:"Remove a single OSD node",id:"remove-a-single-osd-node",level:3},{value:"Remove an OSD (removing it completely, not reprovisioning it again) without double rebalance",id:"remove-an-osd-removing-it-completely-not-reprovisioning-it-again-without-double-rebalance",level:3},{value:"Remove an OSD (temporarily e.g. when replacing a broken disk)",id:"remove-an-osd-temporarily-eg-when-replacing-a-broken-disk",level:3},{value:"Disable backfills/recovery completely",id:"disable-backfillsrecovery-completely",level:3},{value:"Rebalance OSDs",id:"rebalance-osds",level:3},{value:"Placement Group maintenance",id:"placement-group-maintenance",level:2},{value:"Dump placement groups",id:"dump-placement-groups",level:3},{value:"Query a PG about its status",id:"query-a-pg-about-its-status",level:3},{value:"Start (deep-)scrubbing of a placement group",id:"start-deep-scrubbing-of-a-placement-group",level:3},{value:"HEALTH_WARN - Large omap objects found...",id:"health_warn---large-omap-objects-found",level:3},{value:"Instruct a PG to repair in case of scrub errors (inconsistent PG)",id:"instruct-a-pg-to-repair-in-case-of-scrub-errors-inconsistent-pg",level:3},{value:"RADOS Pool maintenance",id:"rados-pool-maintenance",level:2},{value:"Get pools and their configuration",id:"get-pools-and-their-configuration",level:3},{value:"Dump all CRUSH rules",id:"dump-all-crush-rules",level:3},{value:"Get autoscaler status",id:"get-autoscaler-status",level:3},{value:"Create a replicated pool",id:"create-a-replicated-pool",level:3},{value:"Enabling an application on a pool",id:"enabling-an-application-on-a-pool",level:3},{value:"Delete a pool",id:"delete-a-pool",level:3},{value:"Set number of PGs for a pool",id:"set-number-of-pgs-for-a-pool",level:3},{value:"Create CRUSH rules for different storage classes",id:"create-crush-rules-for-different-storage-classes",level:3},{value:"Change CRUSH rule for a pool ("move pool")",id:"change-crush-rule-for-a-pool-move-pool",level:3},{value:"Advanced topics",id:"advanced-topics",level:2},{value:"Validating Ceph using OSISM playbooks",id:"validating-ceph-using-osism-playbooks",level:3},{value:"Shutdown a Ceph cluster",id:"shutdown-a-ceph-cluster",level:3},{value:"Restart a Ceph cluster after manual shutdown",id:"restart-a-ceph-cluster-after-manual-shutdown",level:3},{value:"Where and how to get further help",id:"where-and-how-to-get-further-help",level:2}];function c(e){const n={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.h1,{id:"ceph-operations-cheatsheet",children:"Ceph operations cheatsheet"}),"\n",(0,o.jsx)(n.h2,{id:"where-to-find-docs",children:"Where to find docs"}),"\n",(0,o.jsxs)(n.p,{children:["The official Ceph documentation is located on ",(0,o.jsx)(n.a,{href:"https://docs.ceph.com/en/latest",children:"https://docs.ceph.com/en/latest"})]}),"\n",(0,o.jsxs)(n.p,{children:["It is ",(0,o.jsx)(n.strong,{children:"strongly advised"})," to use the documentation for the version being used."]}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:["Pacific - ",(0,o.jsx)(n.a,{href:"https://docs.ceph.com/en/pacific",children:"https://docs.ceph.com/en/pacific"})]}),"\n",(0,o.jsxs)(n.li,{children:["Quincy - ",(0,o.jsx)(n.a,{href:"https://docs.ceph.com/en/quincy",children:"https://docs.ceph.com/en/quincy"})]}),"\n",(0,o.jsxs)(n.li,{children:["Reef - ",(0,o.jsx)(n.a,{href:"https://docs.ceph.com/en/reef",children:"https://docs.ceph.com/en/reef"})]}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:["ceph-ansible documentation is located on ",(0,o.jsx)(n.a,{href:"https://docs.ceph.com/projects/ceph-ansible/en/latest/",children:"https://docs.ceph.com/projects/ceph-ansible/en/latest/"})]}),"\n",(0,o.jsxs)(n.admonition,{type:"note",children:[(0,o.jsxs)(n.p,{children:["Do not take information in the documentation at face value.\nEspecially when it comes to advanced/rarely used/very new features it is ",(0,o.jsx)(n.strong,{children:"strongly advised"}),"\nto test any claims made in the documentation about any particular feature."]}),(0,o.jsx)(n.p,{children:"Never assume that things will work as written without actually testing it on a test setup\nas close to your real workload scenario as possible."})]}),"\n",(0,o.jsx)(n.h2,{id:"advice-on-ceph-releases",children:"Advice on Ceph releases"}),"\n",(0,o.jsxs)(n.p,{children:["The current Ceph releases and their support status can be found on ",(0,o.jsx)(n.a,{href:"https://docs.ceph.com/en/latest/releases/",children:"https://docs.ceph.com/en/latest/releases/"})]}),"\n",(0,o.jsxs)(n.p,{children:["When a new Ceph stable version is released you are ",(0,o.jsx)(n.strong,{children:"strongly advised"}),"\nto not roll it out on any production cluster whatsoever.\nEven though its listed as \"stable\" it doesn't mean that this is actually true.\nEspecially avoid using .0 releases on anything remotely production\nunless you really, really now what you're doing and can live with a possible catastrophic failure."]}),"\n",(0,o.jsxs)(n.p,{children:["Be ",(0,o.jsx)(n.strong,{children:"very"})," conservative about what version you run on production systems."]}),"\n",(0,o.jsx)(n.p,{children:"Shiny new features aren't worth the risk of total or partial data loss/corruption."}),"\n",(0,o.jsx)(n.h2,{id:"general-maintenance",children:"General maintenance"}),"\n",(0,o.jsx)(n.h3,{id:"60-seconds-cluster-overview",children:"60 seconds cluster overview"}),"\n",(0,o.jsx)(n.p,{children:"The following commands can be used to quickly check the status of Ceph:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph -s # Print overall cluster status\n$ ceph health detail # Print detailed health information\n$ ceph osd tree # Display current OSD tree\n$ ceph df # Cluster storage usage by pool and storage class\n$ ceph osd pool ls detail # List pools with detailed configuration\n$ ceph osd df {plain|tree} {class e.g. hdd|ssd} # Get usage stats for OSDs\n$ ceph -w # Watch Ceph health messages sequentially\n$ ceph versions # List daemon versions running in the cluster\n"})}),"\n",(0,o.jsx)(n.p,{children:"Also you can run the following on each node running ceph-daemons,\nto provide further debug information about the environment:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# lscpu\n# cat /proc/cpuinfo # if lscpu isn't available\n# free -g\n# ip l\n# ethtool # for each network adapter\n"})}),"\n",(0,o.jsx)(n.h3,{id:"muteunmute-a-health-warning",children:"Mute/Unmute a health warning"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph health mute \n$ ceph health unmute \n"})}),"\n",(0,o.jsx)(n.h3,{id:"disableenable-deep-scrubbing",children:"Disable/Enable (deep-)scrubbing"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph osd set noscrub\n$ ceph osd set nodeep-scrub\n$ ceph osd unset noscrub\n$ ceph osd unset nodeep-scrub\n"})}),"\n",(0,o.jsx)(n.admonition,{type:"warning",children:(0,o.jsx)(n.p,{children:"Use this sparingly only in emergency situations.\nSetting these flags will cause a HEALTH_WARN status,\nincrease risk of data corruption and also the risk of generating\na HEALTH_WARN due to PGs not being (deep-)scrubbed in time."})}),"\n",(0,o.jsx)(n.h3,{id:"reboot-a-single-node",children:"Reboot a single node"}),"\n",(0,o.jsxs)(n.p,{children:["The traditional way of doing this is by setting the ",(0,o.jsx)(n.code,{children:"noout"})," flag,\ndo the appropriate maintenance work and after the node is back online\nunset the flag like so:"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"ceph osd set noout\n"})}),"\n",(0,o.jsx)(n.p,{children:"After maintenance is done and host is back up:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"ceph osd unset noout\n"})}),"\n",(0,o.jsx)(n.p,{children:"On versions Luminous or above you can set the flag individually for single\nOSDs or entire CRUSH buckets, which can be a safer option in case of prolonged\nmaintenance periods."}),"\n",(0,o.jsx)(n.p,{children:"Add noout for a OSD:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"ceph osd add-noout osd.\n"})}),"\n",(0,o.jsx)(n.p,{children:"Remove noout for a OSD:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"ceph osd rm-noout osd.\n"})}),"\n",(0,o.jsxs)(n.p,{children:["Add noout for CRUSH bucket (e.g. host name as seen in ",(0,o.jsx)(n.code,{children:"ceph osd tree"}),"):"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"ceph osd set-group noout \n"})}),"\n",(0,o.jsx)(n.p,{children:"Remove noout for CRUSH bucket:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"ceph osd unset-group noout \n"})}),"\n",(0,o.jsx)(n.h2,{id:"gathering-information-about-block-devices",children:"Gathering information about block devices"}),"\n",(0,o.jsx)(n.h3,{id:"enumerate-typical-storage-devices-and-lvm",children:"Enumerate typical storage devices and LVM"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# lsblk\n# lsblk -S\n# lsscsi\n# nvme list\n# pvs\n# vgs\n# lvs\n"})}),"\n",(0,o.jsx)(n.h3,{id:"smart-data-for-satasas-and-nvme-devices",children:"SMART data for SATA/SAS and NVME devices"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# smartctl -a /dev/sdX\n# nvme smart-log /dev/nvmeXnY\n"})}),"\n",(0,o.jsx)(n.h3,{id:"check-format-of-a-nvme-device",children:"Check format of a NVME device"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# nvme id-ns -H /dev/nvmeXnY\n"})}),"\n",(0,o.jsx)(n.admonition,{type:"note",children:(0,o.jsx)(n.p,{children:'Check the last lines named "LBA Format".\nIt will show which formats are supported,\nwhich format is in use and which format offers the best performance\naccording to the vendor.'})}),"\n",(0,o.jsx)(n.h3,{id:"format-a-nvme-device-to-a-different-lba-format-using-nvme-cli",children:"Format a NVME device to a different LBA format using nvme-cli"}),"\n",(0,o.jsx)(n.admonition,{type:"warning",children:(0,o.jsx)(n.p,{children:"This will destroy all data on the device!"})}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# nvme format --lbaf= /dev/nvmeXnY\n"})}),"\n",(0,o.jsx)(n.h3,{id:"secure-erase-a-nvme-drive-using-nvme-cli",children:"Secure Erase a NVME drive using nvme-cli"}),"\n",(0,o.jsx)(n.admonition,{type:"warning",children:(0,o.jsx)(n.p,{children:"This will destroy all data on the device!"})}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# nvme format -s2 /dev/nvmeXnY\n# blkdiscard /dev/nvmeXnY\n# nvme format -s1 /dev/nvmeXnY\n"})}),"\n",(0,o.jsx)(n.h3,{id:"secure-erase-a-satasas-drive-using-hdparm",children:"Secure Erase a SATA/SAS drive using hdparm"}),"\n",(0,o.jsx)(n.admonition,{type:"warning",children:(0,o.jsx)(n.p,{children:"This will destroy all data on the device!"})}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"Gather device info:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# hdparm -I /dev/sdX\n"})}),"\n"]}),"\n"]}),"\n",(0,o.jsxs)(n.p,{children:["Check that the output says ",(0,o.jsx)(n.strong,{children:'"not frozen"'})," and ",(0,o.jsx)(n.strong,{children:'"not locked"'}),",\nalso it should list support for enhanced erase and list time estimates\nfor ",(0,o.jsx)(n.strong,{children:"SECURITY ERASE UNIT"})," and/or ",(0,o.jsx)(n.strong,{children:"ENHANCED SECURITY ERASE UNIT"})]}),"\n",(0,o.jsxs)(n.ol,{start:"2",children:["\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"Set a master password for the disk (required, will be automatically removed after wipe)"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# hdparm --user-master wipeit --security-set-pass wipeit /dev/sdX\n# hdparm -I /dev/sdX\n"})}),"\n",(0,o.jsxs)(n.p,{children:['Check that "Security level" is now ',(0,o.jsx)(n.strong,{children:'"high"'})," and master password is now\n",(0,o.jsx)(n.strong,{children:'"enabled"'})," instead of ",(0,o.jsx)(n.strong,{children:'"not enabled"'})," before"]}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"Wipe the device"}),"\n",(0,o.jsx)(n.p,{children:"If device supports enhanced security erase (better), use the following:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# hdparm --user-master wipeit --security-erase-enhanced wipeit /dev/sdX\n"})}),"\n",(0,o.jsx)(n.p,{children:"If not, use standard security erase:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# hdparm --user-master wipeit --security-erase wipeit /dev/sdX\n"})}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(n.admonition,{type:"note",children:(0,o.jsxs)(n.p,{children:['On some systems the system firmware might "freeze" the device,\nwhich makes it impossible to issue a secure erase or reformat the device.\nIn that case it might be necessary to either "unfreeze" the drive or\nto install the drive in another system where it can be unfrozen.\nAlso make sure that the device is ',(0,o.jsx)(n.em,{children:"actually"})," wiped. Its recommended to\nat least perform a blanking pass on HDDs with a tool like nwipe."]})}),"\n",(0,o.jsx)(n.h2,{id:"osd-maintenance-tasks",children:"OSD maintenance tasks"}),"\n",(0,o.jsx)(n.h3,{id:"locate-a-specific-osd-in-the-cluster",children:"Locate a specific OSD in the cluster"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph osd find osd.\n"})}),"\n",(0,o.jsx)(n.h3,{id:"get-osd-metadata-global-and-single-osd",children:"Get OSD metadata (global and single OSD)"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph osd metadata\n$ ceph osd metadata osd.\n"})}),"\n",(0,o.jsx)(n.admonition,{type:"note",children:(0,o.jsx)(n.p,{children:"Interesting fields:\nosd_objectstore, rotational, hostname, devices, device_ids, device_paths,\nbluefs_db_rotational, bluefs_wal_rotational,\nbluefs_dedicated_db, bluefs_dedicated_wal,\nbluestore_bdev_rotational"})}),"\n",(0,o.jsx)(n.h3,{id:"add-a-new-osd-using-ceph-ansible",children:"Add a new OSD using ceph-ansible"}),"\n",(0,o.jsx)(n.h3,{id:"remove-a-osd-using-ceph-ansible",children:"Remove a OSD using ceph-ansible"}),"\n",(0,o.jsx)(n.h3,{id:"replace-a-defect-osd",children:"Replace a defect OSD"}),"\n",(0,o.jsx)(n.h3,{id:"remove-a-single-osd-node",children:"Remove a single OSD node"}),"\n",(0,o.jsx)(n.h3,{id:"remove-an-osd-removing-it-completely-not-reprovisioning-it-again-without-double-rebalance",children:"Remove an OSD (removing it completely, not reprovisioning it again) without double rebalance"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph osd crush reweight osd. 0.0\n... Wait for rebalance to complete, then mark it OUT:\n$ ceph osd out osd.\n# systemctl stop ceph-osd@\n# systemctl disable ceph-osd@\n$ ceph osd purge osd. --yes-i-really-mean-it\n"})}),"\n",(0,o.jsx)(n.h3,{id:"remove-an-osd-temporarily-eg-when-replacing-a-broken-disk",children:"Remove an OSD (temporarily e.g. when replacing a broken disk)"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph osd out osd.\n# systemctl stop ceph-osd@\n# systemctl disable ceph-osd@\n"})}),"\n",(0,o.jsx)(n.h3,{id:"disable-backfillsrecovery-completely",children:"Disable backfills/recovery completely"}),"\n",(0,o.jsx)(n.admonition,{type:"warning",children:(0,o.jsx)(n.p,{children:"Use only in emergency situations!"})}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph osd set nobackfill\n$ ceph osd set norecovery\n$ ceph osd set norebalance\n"})}),"\n",(0,o.jsxs)(n.p,{children:["Unset the flags with ",(0,o.jsx)(n.code,{children:"ceph osd unset "}),"."]}),"\n",(0,o.jsx)(n.h3,{id:"rebalance-osds",children:"Rebalance OSDs"}),"\n",(0,o.jsx)(n.h2,{id:"placement-group-maintenance",children:"Placement Group maintenance"}),"\n",(0,o.jsx)(n.h3,{id:"dump-placement-groups",children:"Dump placement groups"}),"\n",(0,o.jsx)(n.p,{children:"Usually only useful when parsing it, so here are two ways to get the data:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph pg dump\n$ ceph pg dump --format=json-pretty\n"})}),"\n",(0,o.jsx)(n.h3,{id:"query-a-pg-about-its-status",children:"Query a PG about its status"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph pg query\n"})}),"\n",(0,o.jsx)(n.h3,{id:"start-deep-scrubbing-of-a-placement-group",children:"Start (deep-)scrubbing of a placement group"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph pg scrub \n$ ceph pg deep-scrub \n"})}),"\n",(0,o.jsx)(n.admonition,{type:"note",children:(0,o.jsx)(n.p,{children:"Instructing a PG to (deep-)scrub does not mean that it will do so immediately,\nit can take some time for the scrub to start."})}),"\n",(0,o.jsx)(n.h3,{id:"health_warn---large-omap-objects-found",children:"HEALTH_WARN - Large omap objects found..."}),"\n",(0,o.jsx)(n.p,{children:"Finding PGs which have large OMAP objects:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# ceph pg dump --format=json | jq '.pg_map.pg_stats[] |\nselect(.stat_sum.num_large_omap_objects != 0) |\n(.pgid, .stat_sum.num_large_omap_objects, .up, .acting)'\n"})}),"\n",(0,o.jsxs)(n.p,{children:["(Remove the line breaks between the single quotes or ",(0,o.jsx)(n.code,{children:"jq"})," might act weird!)"]}),"\n",(0,o.jsxs)(n.p,{children:["This will dump all PG IDs with large OMAP objects and their up/acting OSDs.\nYou then can grep the logs of these OSDs for ",(0,o.jsx)(n.strong,{children:'"Large omap object"'}),"\nto find the actual objects causing the health warning."]}),"\n",(0,o.jsx)(n.p,{children:"Also the PG ID before the dot is equal to the pool ID it belongs to."}),"\n",(0,o.jsx)(n.p,{children:"In case the logs have been rotated, instruct those OSDs to do a deep-scrub\nand watch the logs for the message to appear."}),"\n",(0,o.jsx)(n.p,{children:"From there you can investigate the issue further,\nmostly it'll be due to the index of a RGW bucket getting too big due to too many objects,\nthus resharding that bucket's index will be necessary."}),"\n",(0,o.jsx)(n.h3,{id:"instruct-a-pg-to-repair-in-case-of-scrub-errors-inconsistent-pg",children:"Instruct a PG to repair in case of scrub errors (inconsistent PG)"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph pg repair \n"})}),"\n",(0,o.jsxs)(n.admonition,{type:"note",children:[(0,o.jsxs)(n.p,{children:["Recovery might not start immediately and might take some time.\nYou can query the status of the recovery through ",(0,o.jsx)(n.code,{children:"ceph pg query"}),".\nBe sure to read the Ceph manual about this topic ",(0,o.jsx)(n.em,{children:"thoroughly"}),":"]}),(0,o.jsx)(n.p,{children:(0,o.jsx)(n.a,{href:"https://docs.ceph.com/en/latest/rados/operations/pg-repair/",children:"https://docs.ceph.com/en/latest/rados/operations/pg-repair/"})})]}),"\n",(0,o.jsx)(n.h2,{id:"rados-pool-maintenance",children:"RADOS Pool maintenance"}),"\n",(0,o.jsxs)(n.admonition,{type:"note",children:[(0,o.jsx)(n.p,{children:"Read the RADOS pool operations documentation in detail before playing around with pools.\nEspecially when considering making changes to the CRUSH map.\nWrong decisions there can lead to data loss or other catastrophic failures."}),(0,o.jsx)(n.p,{children:(0,o.jsx)(n.a,{href:"https://docs.ceph.com/en/latest/rados/operations/pools/",children:"https://docs.ceph.com/en/latest/rados/operations/pools/"})})]}),"\n",(0,o.jsx)(n.h3,{id:"get-pools-and-their-configuration",children:"Get pools and their configuration"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph osd pool ls detail\n"})}),"\n",(0,o.jsx)(n.h3,{id:"dump-all-crush-rules",children:"Dump all CRUSH rules"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph osd crush rule dump\n"})}),"\n",(0,o.jsx)(n.h3,{id:"get-autoscaler-status",children:"Get autoscaler status"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph osd pool autoscale-status\n"})}),"\n",(0,o.jsx)(n.h3,{id:"create-a-replicated-pool",children:"Create a replicated pool"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph osd pool create replicated []\n"})}),"\n",(0,o.jsx)(n.h3,{id:"enabling-an-application-on-a-pool",children:"Enabling an application on a pool"}),"\n",(0,o.jsx)(n.p,{children:"Required, otherwise a health warning will be raised after some time."}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph osd pool application enable # Syntax\n$ ceph osd pool application enable cinder rbd # Example\n"})}),"\n",(0,o.jsx)(n.p,{children:"Typical application names are: rbd, rgw, cephfs"}),"\n",(0,o.jsx)(n.h3,{id:"delete-a-pool",children:"Delete a pool"}),"\n",(0,o.jsx)(n.admonition,{type:"warning",children:(0,o.jsx)(n.p,{children:"This will delete all data in that pool. There is no undo/undelete."})}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph osd pool delete --yes-i-really-really-mean-it\n"})}),"\n",(0,o.jsxs)(n.admonition,{type:"note",children:[(0,o.jsxs)(n.p,{children:["In order to be able to delete pools, it has to be enabled on the monitors\nby setting the ",(0,o.jsx)(n.code,{children:"mon_allow_pool_delete"})," flag to true. Default is false."]}),(0,o.jsxs)(n.p,{children:["See: ",(0,o.jsx)(n.a,{href:"https://docs.ceph.com/en/latest/rados/configuration/mon-config-ref",children:"https://docs.ceph.com/en/latest/rados/configuration/mon-config-ref"})]})]}),"\n",(0,o.jsx)(n.h3,{id:"set-number-of-pgs-for-a-pool",children:"Set number of PGs for a pool"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph osd pool set pg_num \n"})}),"\n",(0,o.jsxs)(n.admonition,{type:"note",children:[(0,o.jsx)(n.p,{children:"Num PGs must be a power of two! Be careful about changing number of PGs.\nChanging pg_num to a new value will gradually increase pgp_num on newer versions of Ceph."}),(0,o.jsx)(n.p,{children:"In older versions one also has to set pgp_num manually, either in increments or in one big leap."})]}),"\n",(0,o.jsx)(n.h3,{id:"create-crush-rules-for-different-storage-classes",children:"Create CRUSH rules for different storage classes"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph osd crush rule create-replicated replicated_hdd default host hdd\n$ ceph osd crush rule create-replicated replicated_ssd default host ssd\n$ ceph osd crush rule create-replicated replicated_nvme default host nvme\n"})}),"\n",(0,o.jsx)(n.h3,{id:"change-crush-rule-for-a-pool-move-pool",children:'Change CRUSH rule for a pool ("move pool")'}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph osd pool set crush_rule \n"})}),"\n",(0,o.jsx)(n.p,{children:"This can be used to move a pool from e.g. HDD to SSD or NVME class\nor anything else that the new CRUSH rule specifies."}),"\n",(0,o.jsx)(n.h2,{id:"advanced-topics",children:"Advanced topics"}),"\n",(0,o.jsx)(n.h3,{id:"validating-ceph-using-osism-playbooks",children:"Validating Ceph using OSISM playbooks"}),"\n",(0,o.jsxs)(n.p,{children:["For Ceph, special playbooks were added to validate the deployment status of\nthe OSD, MON and MGR services. The commands for use are ",(0,o.jsx)(n.code,{children:"osism validate ceph-osds"}),",\n",(0,o.jsx)(n.code,{children:"osism validate ceph-mons"}),", and ",(0,o.jsx)(n.code,{children:"osism validate ceph-mgrs"}),"."]}),"\n",(0,o.jsxs)(n.p,{children:["These playbooks will validate that the deployed Ceph environment matches\nthe configuration and is overall in a healthy state. The playbooks will\ngenerate report files in JSON format on the first manager node in ",(0,o.jsx)(n.code,{children:"/opt/reports/validator"}),"."]}),"\n",(0,o.jsx)(n.h3,{id:"shutdown-a-ceph-cluster",children:"Shutdown a Ceph cluster"}),"\n",(0,o.jsx)(n.p,{children:"In order to fully shutdown a Ceph cluster safely, you first do the following steps:"}),"\n",(0,o.jsx)(n.admonition,{type:"warning",children:(0,o.jsx)(n.p,{children:"Take GOOD NOTES of the unit names and OSD IDs running on each node.\nYou will need them to restart the cluster later."})}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"Stop the workload that is using the cluster"}),"\n",(0,o.jsx)(n.p,{children:"This will vary depending on your environment and is not covered here."}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"Pause/Stop operations on the cluster by setting flags"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph osd set noout\n$ ceph osd set nobackfill\n$ ceph osd set norecover\n$ ceph osd set norebalance\n$ ceph osd set nodown\n$ ceph osd set pause\n"})}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsxs)(n.p,{children:["Stop and disable the ",(0,o.jsx)(n.code,{children:"radosgw"})," services on all nodes (on each rgw node) (if RGW is used)"]}),"\n",(0,o.jsx)(n.p,{children:"Get the name of the unit (globs not supported for disable) and\nmake a note of the unit name for that node:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# systemctl | grep ceph-radosgw\n"})}),"\n",(0,o.jsx)(n.p,{children:"Then disable and stop the unit:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# systemctl disable --now ceph-radosgw@.service\n"})}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"Stop all CephFS file systems (if CephFS is used)"}),"\n",(0,o.jsx)(n.p,{children:"List all Ceph file systems"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph fs ls\n"})}),"\n",(0,o.jsx)(n.p,{children:"For each CephFS do:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph fs down true\n"})}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsxs)(n.p,{children:["After that disable and stop all ",(0,o.jsx)(n.code,{children:"ceph-mds"})," services on all nodes (do this on each node)"]}),"\n",(0,o.jsx)(n.p,{children:"Get the name of the unit (globs not supported for disable) and\nmake a note of the unit name for that node:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# systemctl | grep ceph-mds\n"})}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# systemctl disable --now ceph-mds@.service\n"})}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsxs)(n.p,{children:["Stop and disable the ",(0,o.jsx)(n.code,{children:"ceph-mgr"})," services on all nodes (do this on each node)"]}),"\n",(0,o.jsx)(n.p,{children:"Get the name of the unit (globs not supported for disable) and\nmake a note of the unit name for that node:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# systemctl | grep ceph-mgr\n"})}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# systemctl disable --now ceph-mgr@.service\n"})}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsxs)(n.p,{children:["Stop and disable the ",(0,o.jsx)(n.code,{children:"ceph-osd"})," services on all nodes (do this on each node)"]}),"\n",(0,o.jsx)(n.p,{children:"Get the names of the units (globs not supported for disable) and\nmake a note of the unit names for that node (best to save it to a file):"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# systemctl | grep ceph-osd\n"})}),"\n",(0,o.jsx)(n.p,{children:"For each OSD unit execute:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# systemctl disable ceph-osd@.service\n"})}),"\n",(0,o.jsx)(n.p,{children:"Stop all OSDs at once:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# systemctl stop ceph-osd\\*.service\n"})}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsxs)(n.p,{children:["Finally stop the ",(0,o.jsx)(n.code,{children:"ceph-mon"})," services on all nodes (do this on each node)"]}),"\n",(0,o.jsx)(n.p,{children:"Get the name of the unit (globs not supported for disable) and\nmake a note of the unit name for that node:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# systemctl | grep ceph-mon\n"})}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# systemctl disable --now ceph-mon@.service\n"})}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(n.h3,{id:"restart-a-ceph-cluster-after-manual-shutdown",children:"Restart a Ceph cluster after manual shutdown"}),"\n",(0,o.jsx)(n.admonition,{type:"warning",children:(0,o.jsxs)(n.p,{children:["You will need the notes taken during shutdown of the unit names.\nIt ",(0,o.jsx)(n.strong,{children:"can"})," be done without, but then it'll be way more work finding out the names."]})}),"\n",(0,o.jsx)(n.p,{children:"In order to restart a Ceph cluster after performing a manual shutdown like described\nin the section above, you do the following:"}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsxs)(n.p,{children:["Enable & start the ",(0,o.jsx)(n.code,{children:"ceph-mon"})," services on all nodes (do this on each node)"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# systemctl enable --now ceph-mon@.service\n"})}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsxs)(n.p,{children:["Enable & start the ",(0,o.jsx)(n.code,{children:"ceph-osd"})," services on all nodes (do this on each node)"]}),"\n",(0,o.jsx)(n.p,{children:"For each Ceph OSD on that node do:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# systemctl enable --now ceph-osd@.service\n"})}),"\n",(0,o.jsx)(n.p,{children:"Depending on the number of OSDs on that node it can take a while."}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsxs)(n.p,{children:["Enable & start the ",(0,o.jsx)(n.code,{children:"ceph-mgr"})," services on all nodes (do this on each node)"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# systemctl enable --now ceph-mgr@.service\n"})}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"Check the status of your cluster and wait for all OSDs to come online"}),"\n",(0,o.jsx)(n.p,{children:"You can watch the status periodically by running:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ watch ceph -s\n"})}),"\n",(0,o.jsx)(n.p,{children:"You should wait until all OSDs are up + in again, before removing flags."}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"Remove flags to unpause operations"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph osd unset pause\n$ ceph osd unset nodown\n$ ceph osd unset noout\n$ ceph osd unset nobackfill\n$ ceph osd unset norecover\n$ ceph osd unset norebalance\n"})}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"Wait for cluster to resume operations"}),"\n",(0,o.jsx)(n.p,{children:'See step #4 of this SOP.\nNow you wait until the cluster seems "happy enough" to accept clients.\n(i.e. rebalancing finished etc.)\nMaybe it will complain about MDS being down, but that\'s normal for now.'}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsxs)(n.p,{children:["Enable & start the ",(0,o.jsx)(n.code,{children:"ceph-mds"})," services on each node (if CephFS is used)"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# systemctl enable --now ceph-mds@.service\n"})}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsx)(n.p,{children:"Start CephFS file systems again"}),"\n",(0,o.jsx)(n.p,{children:"List all Ceph file systems"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph fs ls\n"})}),"\n",(0,o.jsx)(n.p,{children:"For each CephFS do:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"$ ceph fs down false\n"})}),"\n"]}),"\n",(0,o.jsxs)(n.li,{children:["\n",(0,o.jsxs)(n.p,{children:["Enable & start the ",(0,o.jsx)(n.code,{children:"radosgw"})," services on each node (if RGW is used)"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{children:"# systemctl enable --now ceph-radosgw@.service\n"})}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(n.h2,{id:"where-and-how-to-get-further-help",children:"Where and how to get further help"}),"\n",(0,o.jsxs)(n.p,{children:["Join the ",(0,o.jsx)(n.strong,{children:"#ceph"})," IRC channel on ",(0,o.jsx)(n.strong,{children:"irc.oftc.net"}),', state the problem with as many details as possible\nincluding information about what steps have already been taken to solve the problem\nalso provide information from the command output from the "60 seconds cluster overview" above\nthrough a pastebin or a similar service. In order for people to be able\nto help, details and some patience are important.']})]})}function h(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},1151:(e,n,s)=>{s.d(n,{Z:()=>r,a:()=>a});var o=s(7294);const i={},t=o.createContext(i);function a(e){const n=o.useContext(t);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),o.createElement(t.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/935f2afb.5ce41e84.js b/assets/js/935f2afb.06ed6f0e.js
similarity index 82%
rename from assets/js/935f2afb.5ce41e84.js
rename to assets/js/935f2afb.06ed6f0e.js
index e6153c0b3d..eed66a3ccf 100644
--- a/assets/js/935f2afb.5ce41e84.js
+++ b/assets/js/935f2afb.06ed6f0e.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkosism=self.webpackChunkosism||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"category","label":"Introduction","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Architecture","href":"/docs/intro/architecture","docId":"intro/architecture","unlisted":false}],"href":"/docs/intro/"},{"type":"link","label":"Getting Started","href":"/docs/getting-started","docId":"getting-started","unlisted":false},{"type":"category","label":"Guides","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Deploy Guide","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Seed","href":"/docs/guides/deploy-guide/seed","docId":"guides/deploy-guide/seed","unlisted":false},{"type":"link","label":"Manager","href":"/docs/guides/deploy-guide/manager","docId":"guides/deploy-guide/manager","unlisted":false},{"type":"link","label":"Provisioning","href":"/docs/guides/deploy-guide/provisioning","docId":"guides/deploy-guide/provisioning","unlisted":false},{"type":"link","label":"Bootstrap","href":"/docs/guides/deploy-guide/bootstrap","docId":"guides/deploy-guide/bootstrap","unlisted":false},{"type":"category","label":"Services","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Infrastructure","href":"/docs/guides/deploy-guide/services/infrastructure","docId":"guides/deploy-guide/services/infrastructure","unlisted":false},{"type":"link","label":"Network","href":"/docs/guides/deploy-guide/services/network","docId":"guides/deploy-guide/services/network","unlisted":false},{"type":"link","label":"Logging & Monitoring","href":"/docs/guides/deploy-guide/services/logging-monitoring","docId":"guides/deploy-guide/services/logging-monitoring","unlisted":false},{"type":"link","label":"Ceph","href":"/docs/guides/deploy-guide/services/ceph","docId":"guides/deploy-guide/services/ceph","unlisted":false},{"type":"link","label":"OpenStack","href":"/docs/guides/deploy-guide/services/openstack","docId":"guides/deploy-guide/services/openstack","unlisted":false}],"href":"/docs/guides/deploy-guide/services/"},{"type":"category","label":"Examples","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Cloud in a Box","href":"/docs/guides/deploy-guide/examples/cloud-in-a-box","docId":"guides/deploy-guide/examples/cloud-in-a-box","unlisted":false},{"type":"link","label":"Testbed","href":"/docs/guides/deploy-guide/examples/testbed","docId":"guides/deploy-guide/examples/testbed","unlisted":false}],"href":"/docs/guides/deploy-guide/examples/"}],"href":"/docs/guides/deploy-guide/"},{"type":"category","label":"Upgrade Guide","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Manager","href":"/docs/guides/upgrade-guide/manager","docId":"guides/upgrade-guide/manager","unlisted":false},{"type":"link","label":"Network","href":"/docs/guides/upgrade-guide/network","docId":"guides/upgrade-guide/network","unlisted":false},{"type":"link","label":"Ceph","href":"/docs/guides/upgrade-guide/ceph","docId":"guides/upgrade-guide/ceph","unlisted":false},{"type":"link","label":"Docker","href":"/docs/guides/upgrade-guide/docker","docId":"guides/upgrade-guide/docker","unlisted":false},{"type":"link","label":"Infrastructure","href":"/docs/guides/upgrade-guide/infrastructure","docId":"guides/upgrade-guide/infrastructure","unlisted":false},{"type":"link","label":"Logging & Monitoring","href":"/docs/guides/upgrade-guide/logging-monitoring","docId":"guides/upgrade-guide/logging-monitoring","unlisted":false},{"type":"link","label":"OpenStack","href":"/docs/guides/upgrade-guide/openstack","docId":"guides/upgrade-guide/openstack","unlisted":false}],"href":"/docs/guides/upgrade-guide/"},{"type":"category","label":"Configuration Guide","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Configuration repository","href":"/docs/guides/configuration-guide/configuration-repository","docId":"guides/configuration-guide/configuration-repository","unlisted":false},{"type":"link","label":"Inventory","href":"/docs/guides/configuration-guide/inventory","docId":"guides/configuration-guide/inventory","unlisted":false},{"type":"link","label":"Manager","href":"/docs/guides/configuration-guide/manager","docId":"guides/configuration-guide/manager","unlisted":false},{"type":"category","label":"Commons","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Network","href":"/docs/guides/configuration-guide/commons/network","docId":"guides/configuration-guide/commons/network","unlisted":false},{"type":"link","label":"Packages","href":"/docs/guides/configuration-guide/commons/packages","docId":"guides/configuration-guide/commons/packages","unlisted":false},{"type":"link","label":"Services","href":"/docs/guides/configuration-guide/commons/services","docId":"guides/configuration-guide/commons/services","unlisted":false},{"type":"link","label":"SSH Config","href":"/docs/guides/configuration-guide/commons/sshconfig","docId":"guides/configuration-guide/commons/sshconfig","unlisted":false},{"type":"link","label":"Sysctl","href":"/docs/guides/configuration-guide/commons/sysctl","docId":"guides/configuration-guide/commons/sysctl","unlisted":false},{"type":"link","label":"Timezone","href":"/docs/guides/configuration-guide/commons/timezone","docId":"guides/configuration-guide/commons/timezone","unlisted":false}],"href":"/docs/guides/configuration-guide/commons/"},{"type":"link","label":"Services","href":"/docs/guides/configuration-guide/services/","docId":"guides/configuration-guide/services/index","unlisted":false},{"type":"link","label":"Ceph","href":"/docs/guides/configuration-guide/ceph","docId":"guides/configuration-guide/ceph","unlisted":false},{"type":"category","label":"OpenStack","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Horizon","href":"/docs/guides/configuration-guide/openstack/horizon","docId":"guides/configuration-guide/openstack/horizon","unlisted":false},{"type":"link","label":"Keystone","href":"/docs/guides/configuration-guide/openstack/keystone","docId":"guides/configuration-guide/openstack/keystone","unlisted":false}],"href":"/docs/guides/configuration-guide/openstack/"},{"type":"link","label":"Proxy","href":"/docs/guides/configuration-guide/proxy","docId":"guides/configuration-guide/proxy","unlisted":false},{"type":"link","label":"Self-signed certificates","href":"/docs/guides/configuration-guide/self-signed-certificates","docId":"guides/configuration-guide/self-signed-certificates","unlisted":false}],"href":"/docs/guides/configuration-guide/"},{"type":"category","label":"Operations Guide","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Manager","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Apply","href":"/docs/guides/operations-guide/manager/apply","docId":"guides/operations-guide/manager/apply","unlisted":false},{"type":"link","label":"Logging","href":"/docs/guides/operations-guide/manager/log","docId":"guides/operations-guide/manager/log","unlisted":false},{"type":"link","label":"Console","href":"/docs/guides/operations-guide/manager/console","docId":"guides/operations-guide/manager/console","unlisted":false},{"type":"link","label":"Task","href":"/docs/guides/operations-guide/manager/task","docId":"guides/operations-guide/manager/task","unlisted":false}],"href":"/docs/guides/operations-guide/manager/"},{"type":"link","label":"Ceph","href":"/docs/guides/operations-guide/ceph","docId":"guides/operations-guide/ceph","unlisted":false},{"type":"category","label":"OpenStack","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Cinder","href":"/docs/guides/operations-guide/openstack/cinder","docId":"guides/operations-guide/openstack/cinder","unlisted":false},{"type":"link","label":"Octavia","href":"/docs/guides/operations-guide/openstack/octavia","docId":"guides/operations-guide/openstack/octavia","unlisted":false},{"type":"category","label":"Day-2 Operations","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Playbooks","href":"/docs/guides/operations-guide/openstack/day2-operations/playbooks","docId":"guides/operations-guide/openstack/day2-operations/playbooks","unlisted":false},{"type":"link","label":"Image Manager","href":"/docs/guides/operations-guide/openstack/day2-operations/image-manager","docId":"guides/operations-guide/openstack/day2-operations/image-manager","unlisted":false},{"type":"link","label":"Flavor Manager","href":"/docs/guides/operations-guide/openstack/day2-operations/flavor-manager","docId":"guides/operations-guide/openstack/day2-operations/flavor-manager","unlisted":false},{"type":"link","label":"Resource Manager","href":"/docs/guides/operations-guide/openstack/day2-operations/resource-manager","docId":"guides/operations-guide/openstack/day2-operations/resource-manager","unlisted":false},{"type":"link","label":"Project Manager","href":"/docs/guides/operations-guide/openstack/day2-operations/project-manager","docId":"guides/operations-guide/openstack/day2-operations/project-manager","unlisted":false},{"type":"link","label":"Sandbox Manager","href":"/docs/guides/operations-guide/openstack/day2-operations/sandbox-manager","docId":"guides/operations-guide/openstack/day2-operations/sandbox-manager","unlisted":false}],"href":"/docs/guides/operations-guide/openstack/day2-operations/"}],"href":"/docs/guides/operations-guide/openstack/"}],"href":"/docs/guides/operations-guide/"},{"type":"category","label":"Troubleshooting Guide","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Manager","href":"/docs/guides/troubleshooting-guide/manager","docId":"guides/troubleshooting-guide/manager","unlisted":false},{"type":"link","label":"OpenStack","href":"/docs/guides/troubleshooting-guide/openstack","docId":"guides/troubleshooting-guide/openstack","unlisted":false}],"href":"/docs/guides/troubleshooting-guide/"},{"type":"category","label":"Other Guides","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Contributor Guide","href":"/docs/guides/other-guides/contributor-guide","docId":"guides/other-guides/contributor-guide","unlisted":false},{"type":"category","label":"Developer Guide","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Releases","href":"/docs/guides/other-guides/developer-guide/releases","docId":"guides/other-guides/developer-guide/releases","unlisted":false},{"type":"link","label":"Scripts","href":"/docs/guides/other-guides/developer-guide/scripts","docId":"guides/other-guides/developer-guide/scripts","unlisted":false},{"type":"link","label":"Zuul Ci","href":"/docs/guides/other-guides/developer-guide/zuul-ci","docId":"guides/other-guides/developer-guide/zuul-ci","unlisted":false}],"href":"/docs/guides/other-guides/developer-guide/"},{"type":"link","label":"Style Guide","href":"/docs/guides/other-guides/style-guide","docId":"guides/other-guides/style-guide","unlisted":false},{"type":"link","label":"Zuul CI","href":"/docs/guides/other-guides/zuul","docId":"guides/other-guides/zuul","unlisted":false}],"href":"/docs/guides/other-guides/"}],"href":"/docs/guides/"},{"type":"category","label":"References","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Command line interface reference","href":"/docs/references/cli","docId":"references/cli","unlisted":false},{"type":"link","label":"Configuration reference","href":"/docs/references/configuration","docId":"references/configuration","unlisted":false},{"type":"link","label":"Parameters reference","href":"/docs/references/parameters","docId":"references/parameters","unlisted":false}],"href":"/docs/references/"},{"type":"category","label":"Release Notes","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"OSISM 6.0.0","href":"/docs/release-notes/osism-6","docId":"release-notes/osism-6","unlisted":false}],"href":"/docs/release-notes/"},{"type":"category","label":"Appendix","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Glossary","href":"/docs/appendix/glossary","docId":"appendix/glossary","unlisted":false},{"type":"link","label":"Standards","href":"/docs/appendix/standards","docId":"appendix/standards","unlisted":false}],"href":"/docs/appendix/"}]},"docs":{"appendix/glossary":{"id":"appendix/glossary","title":"Glossary","description":"\ud83d\udca1 This section serves as the central glossary within OSISM. It is intended to clearly define","sidebar":"tutorialSidebar"},"appendix/index":{"id":"appendix/index","title":"Appendix","description":"","sidebar":"tutorialSidebar"},"appendix/standards":{"id":"appendix/standards","title":"Standards","description":"| Name | OSISM Documentation | SCS Standard Track | SCS Standard | SCS Documentation |","sidebar":"tutorialSidebar"},"getting-started":{"id":"getting-started","title":"Getting Started","description":"Deployment","sidebar":"tutorialSidebar"},"guides/configuration-guide/ceph":{"id":"guides/configuration-guide/ceph","title":"Ceph","description":"Unique Identifier","sidebar":"tutorialSidebar"},"guides/configuration-guide/commons/index":{"id":"guides/configuration-guide/commons/index","title":"Commons","description":"This section contains the documentation of the Ansible collection osism.commons.","sidebar":"tutorialSidebar"},"guides/configuration-guide/commons/network":{"id":"guides/configuration-guide/commons/network","title":"Network","description":"The osism.commons.network role is used for the netwok configuration.","sidebar":"tutorialSidebar"},"guides/configuration-guide/commons/packages":{"id":"guides/configuration-guide/commons/packages","title":"Packages","description":"With the osism.commons.packages role, it is possible to add packages on a node","sidebar":"tutorialSidebar"},"guides/configuration-guide/commons/services":{"id":"guides/configuration-guide/commons/services","title":"Services","description":"With the osism.commons.services role, it is possible to manage services on a node","sidebar":"tutorialSidebar"},"guides/configuration-guide/commons/sshconfig":{"id":"guides/configuration-guide/commons/sshconfig","title":"SSH Config","description":"With the osism.commons.sshconfig role, it is possible to manage a SSH config","sidebar":"tutorialSidebar"},"guides/configuration-guide/commons/sysctl":{"id":"guides/configuration-guide/commons/sysctl","title":"Sysctl","description":"With the osism.commons.sysctl role, it is possible to manage the attributes of the kernel","sidebar":"tutorialSidebar"},"guides/configuration-guide/commons/timezone":{"id":"guides/configuration-guide/commons/timezone","title":"Timezone","description":"With the osism.commons.timezone role, it is possible to manage the used timezone on a node.","sidebar":"tutorialSidebar"},"guides/configuration-guide/configuration-repository":{"id":"guides/configuration-guide/configuration-repository","title":"Configuration Repository","description":"The configuration required for OSISM is stored in a single Git monorepo, the configuration repository.","sidebar":"tutorialSidebar"},"guides/configuration-guide/index":{"id":"guides/configuration-guide/index","title":"Configuration Guide","description":"","sidebar":"tutorialSidebar"},"guides/configuration-guide/inventory":{"id":"guides/configuration-guide/inventory","title":"Inventory","description":"The inventory used for the environment is located in the inventory directory.","sidebar":"tutorialSidebar"},"guides/configuration-guide/manager":{"id":"guides/configuration-guide/manager","title":"Manager","description":"Stable release","sidebar":"tutorialSidebar"},"guides/configuration-guide/openstack/horizon":{"id":"guides/configuration-guide/openstack/horizon","title":"Horizon","description":"Problems uploading machine images larger than 1 GiB","sidebar":"tutorialSidebar"},"guides/configuration-guide/openstack/index":{"id":"guides/configuration-guide/openstack/index","title":"OpenStack","description":"Network interfaces","sidebar":"tutorialSidebar"},"guides/configuration-guide/openstack/keystone":{"id":"guides/configuration-guide/openstack/keystone","title":"Keystone","description":"Domain manager role","sidebar":"tutorialSidebar"},"guides/configuration-guide/proxy":{"id":"guides/configuration-guide/proxy","title":"Proxy","description":"","sidebar":"tutorialSidebar"},"guides/configuration-guide/self-signed-certificates":{"id":"guides/configuration-guide/self-signed-certificates","title":"Self-signed certificates","description":"OpenStack","sidebar":"tutorialSidebar"},"guides/configuration-guide/services/index":{"id":"guides/configuration-guide/services/index","title":"Services","description":"This section contains the documentation of the Ansible collection osism.services.","sidebar":"tutorialSidebar"},"guides/deploy-guide/bootstrap":{"id":"guides/deploy-guide/bootstrap","title":"Bootstrap","description":"Before the nodes can be bootstrapped, they must all have already been provisioned.","sidebar":"tutorialSidebar"},"guides/deploy-guide/examples/cloud-in-a-box":{"id":"guides/deploy-guide/examples/cloud-in-a-box","title":"Cloud in a Box - CiaB","description":"\ud83d\udca1 Cloud in a Box (CiaB) is a minimalistic installation of the latest stable OSISM release with only services which are needed to","sidebar":"tutorialSidebar"},"guides/deploy-guide/examples/index":{"id":"guides/deploy-guide/examples/index","title":"Examples","description":"","sidebar":"tutorialSidebar"},"guides/deploy-guide/examples/testbed":{"id":"guides/deploy-guide/examples/testbed","title":"Testbed","description":"\ud83d\udca1 With the OSISM Testbed, it is possible to run a full Sovereign Cloud Stack","sidebar":"tutorialSidebar"},"guides/deploy-guide/index":{"id":"guides/deploy-guide/index","title":"Deploy Guide","description":"\ud83d\udca1 The Deploy Guide describe how to provision, bootstrap and deploy nodes and services.","sidebar":"tutorialSidebar"},"guides/deploy-guide/manager":{"id":"guides/deploy-guide/manager","title":"Manager","description":"Change into the configuration/environments/manager directory of the configuration repository.","sidebar":"tutorialSidebar"},"guides/deploy-guide/provisioning":{"id":"guides/deploy-guide/provisioning","title":"Provisioning of management and control plane nodes","description":"For the initial deployment of the management plane and the control plane of OSISM,","sidebar":"tutorialSidebar"},"guides/deploy-guide/seed":{"id":"guides/deploy-guide/seed","title":"Seed","description":"The seed node is used once for the initial bootstrap of the manager node. It is sufficient","sidebar":"tutorialSidebar"},"guides/deploy-guide/services/ceph":{"id":"guides/deploy-guide/services/ceph","title":"Ceph","description":"1. Deploy base services.","sidebar":"tutorialSidebar"},"guides/deploy-guide/services/index":{"id":"guides/deploy-guide/services/index","title":"Services","description":"Getting started","sidebar":"tutorialSidebar"},"guides/deploy-guide/services/infrastructure":{"id":"guides/deploy-guide/services/infrastructure","title":"Infrastructure","description":"Common issues with deploying infrastructure services required by OpenStack","sidebar":"tutorialSidebar"},"guides/deploy-guide/services/logging-monitoring":{"id":"guides/deploy-guide/services/logging-monitoring","title":"Logging & Monitoring","description":"Common issues with deploying logging & monitoring services provided by Kolla","sidebar":"tutorialSidebar"},"guides/deploy-guide/services/network":{"id":"guides/deploy-guide/services/network","title":"Network","description":"Open vSwitch","sidebar":"tutorialSidebar"},"guides/deploy-guide/services/openstack":{"id":"guides/deploy-guide/services/openstack","title":"OpenStack","description":"Common issues with deploying OpenStack services are documented in the","sidebar":"tutorialSidebar"},"guides/index":{"id":"guides/index","title":"Guides","description":"","sidebar":"tutorialSidebar"},"guides/operations-guide/ceph":{"id":"guides/operations-guide/ceph","title":"Ceph operations cheatsheet","description":"Where to find docs","sidebar":"tutorialSidebar"},"guides/operations-guide/index":{"id":"guides/operations-guide/index","title":"Operations Guide","description":"Node states","sidebar":"tutorialSidebar"},"guides/operations-guide/manager/apply":{"id":"guides/operations-guide/manager/apply","title":"Apply","description":"List all available plays","sidebar":"tutorialSidebar"},"guides/operations-guide/manager/console":{"id":"guides/operations-guide/manager/console","title":"Console","description":"A console command is available in the OSISM CLI. This allows specific parts of the","sidebar":"tutorialSidebar"},"guides/operations-guide/manager/index":{"id":"guides/operations-guide/manager/index","title":"Manager","description":"OSISM orchestrator","sidebar":"tutorialSidebar"},"guides/operations-guide/manager/log":{"id":"guides/operations-guide/manager/log","title":"Logging","description":"Ansible","sidebar":"tutorialSidebar"},"guides/operations-guide/manager/task":{"id":"guides/operations-guide/manager/task","title":"Task","description":"List","sidebar":"tutorialSidebar"},"guides/operations-guide/openstack/cinder":{"id":"guides/operations-guide/openstack/cinder","title":"Cinder","description":"Remove service","sidebar":"tutorialSidebar"},"guides/operations-guide/openstack/day2-operations/flavor-manager":{"id":"guides/operations-guide/openstack/day2-operations/flavor-manager","title":"Flavor Manager","description":"Overview","sidebar":"tutorialSidebar"},"guides/operations-guide/openstack/day2-operations/image-manager":{"id":"guides/operations-guide/openstack/day2-operations/image-manager","title":"Image Manager","description":"The OpenStack Image Manager is a tool for managing all images on an OpenStack environment","sidebar":"tutorialSidebar"},"guides/operations-guide/openstack/day2-operations/index":{"id":"guides/operations-guide/openstack/day2-operations/index","title":"Day-2 Operations","description":"","sidebar":"tutorialSidebar"},"guides/operations-guide/openstack/day2-operations/playbooks":{"id":"guides/operations-guide/openstack/day2-operations/playbooks","title":"Playbooks","description":"Host aggregates","sidebar":"tutorialSidebar"},"guides/operations-guide/openstack/day2-operations/project-manager":{"id":"guides/operations-guide/openstack/day2-operations/project-manager","title":"Project Manager","description":"","sidebar":"tutorialSidebar"},"guides/operations-guide/openstack/day2-operations/resource-manager":{"id":"guides/operations-guide/openstack/day2-operations/resource-manager","title":"Resource Manager","description":"Octavia","sidebar":"tutorialSidebar"},"guides/operations-guide/openstack/day2-operations/sandbox-manager":{"id":"guides/operations-guide/openstack/day2-operations/sandbox-manager","title":"Sandbox Manager","description":"","sidebar":"tutorialSidebar"},"guides/operations-guide/openstack/index":{"id":"guides/operations-guide/openstack/index","title":"OpenStack","description":"","sidebar":"tutorialSidebar"},"guides/operations-guide/openstack/octavia":{"id":"guides/operations-guide/openstack/octavia","title":"Octavia","description":"Cleanup of amphora missing from the DB","sidebar":"tutorialSidebar"},"guides/other-guides/contributor-guide":{"id":"guides/other-guides/contributor-guide","title":"Contributor Guide","description":"We welcome any issues, change requests or general feedback. Do not hestiate to open an issue.","sidebar":"tutorialSidebar"},"guides/other-guides/developer-guide/index":{"id":"guides/other-guides/developer-guide/index","title":"Developer Guide","description":"How to add a new service","sidebar":"tutorialSidebar"},"guides/other-guides/developer-guide/releases":{"id":"guides/other-guides/developer-guide/releases","title":"Releases","description":"How we handle releases","sidebar":"tutorialSidebar"},"guides/other-guides/developer-guide/scripts":{"id":"guides/other-guides/developer-guide/scripts","title":"Scripts","description":"Scripts are included in container images to simplify development work and to enable","sidebar":"tutorialSidebar"},"guides/other-guides/developer-guide/zuul-ci":{"id":"guides/other-guides/developer-guide/zuul-ci","title":"Zuul CI","description":"We use Zuul CI for our CI. Our Zuul CI instance is available","sidebar":"tutorialSidebar"},"guides/other-guides/index":{"id":"guides/other-guides/index","title":"Other Guides","description":"","sidebar":"tutorialSidebar"},"guides/other-guides/style-guide":{"id":"guides/other-guides/style-guide","title":"Style Guide","description":"Ansible","sidebar":"tutorialSidebar"},"guides/other-guides/zuul":{"id":"guides/other-guides/zuul","title":"Zuul CI","description":"We use Zuul CI as a CI service for OSISM. The service is not required for","sidebar":"tutorialSidebar"},"guides/troubleshooting-guide/index":{"id":"guides/troubleshooting-guide/index","title":"Troubleshooting Guide","description":"\ud83d\udca1 The Troubleshooting Guide describe how to solve issues.","sidebar":"tutorialSidebar"},"guides/troubleshooting-guide/manager":{"id":"guides/troubleshooting-guide/manager","title":"Manager","description":"Reset","sidebar":"tutorialSidebar"},"guides/troubleshooting-guide/openstack":{"id":"guides/troubleshooting-guide/openstack","title":"OpenStack","description":"Database creation fails","sidebar":"tutorialSidebar"},"guides/upgrade-guide/ceph":{"id":"guides/upgrade-guide/ceph","title":"Ceph","description":"","sidebar":"tutorialSidebar"},"guides/upgrade-guide/docker":{"id":"guides/upgrade-guide/docker","title":"Docker","description":"The Docker version used is defined via the parameter docker_version in the file","sidebar":"tutorialSidebar"},"guides/upgrade-guide/index":{"id":"guides/upgrade-guide/index","title":"Upgrade Guide","description":"In the examples, the pull of images (if supported by a role) is always run first. While","sidebar":"tutorialSidebar"},"guides/upgrade-guide/infrastructure":{"id":"guides/upgrade-guide/infrastructure","title":"Infrastructure","description":"Kubernetes","sidebar":"tutorialSidebar"},"guides/upgrade-guide/logging-monitoring":{"id":"guides/upgrade-guide/logging-monitoring","title":"Logging & Monitoring","description":"OpenSearch","sidebar":"tutorialSidebar"},"guides/upgrade-guide/manager":{"id":"guides/upgrade-guide/manager","title":"Manager","description":"Always read the release notes first to learn what has changed and what","sidebar":"tutorialSidebar"},"guides/upgrade-guide/network":{"id":"guides/upgrade-guide/network","title":"Network","description":"Open vSwitch","sidebar":"tutorialSidebar"},"guides/upgrade-guide/openstack":{"id":"guides/upgrade-guide/openstack","title":"OpenStack","description":"Keystone","sidebar":"tutorialSidebar"},"intro/architecture":{"id":"intro/architecture","title":"Architecture","description":"OSISM total overview","sidebar":"tutorialSidebar"},"intro/index":{"id":"intro/index","title":"Introduction","description":"This documentation is currently under construction and is not yet complete.","sidebar":"tutorialSidebar"},"references/cli":{"id":"references/cli","title":"Command line interface reference","description":"","sidebar":"tutorialSidebar"},"references/configuration":{"id":"references/configuration","title":"Configuration reference","description":"","sidebar":"tutorialSidebar"},"references/index":{"id":"references/index","title":"References","description":"","sidebar":"tutorialSidebar"},"references/parameters":{"id":"references/parameters","title":"Parameters reference","description":"","sidebar":"tutorialSidebar"},"release-notes/index":{"id":"release-notes/index","title":"Release Notes","description":"","sidebar":"tutorialSidebar"},"release-notes/osism-6":{"id":"release-notes/osism-6","title":"OSISM 6.0.0","description":"","sidebar":"tutorialSidebar"}}}')}}]);
\ No newline at end of file
+"use strict";(self.webpackChunkosism=self.webpackChunkosism||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"category","label":"Introduction","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Architecture","href":"/docs/intro/architecture","docId":"intro/architecture","unlisted":false}],"href":"/docs/intro/"},{"type":"link","label":"Getting Started","href":"/docs/getting-started","docId":"getting-started","unlisted":false},{"type":"category","label":"Guides","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Deploy Guide","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Seed","href":"/docs/guides/deploy-guide/seed","docId":"guides/deploy-guide/seed","unlisted":false},{"type":"link","label":"Manager","href":"/docs/guides/deploy-guide/manager","docId":"guides/deploy-guide/manager","unlisted":false},{"type":"link","label":"Provisioning","href":"/docs/guides/deploy-guide/provisioning","docId":"guides/deploy-guide/provisioning","unlisted":false},{"type":"link","label":"Bootstrap","href":"/docs/guides/deploy-guide/bootstrap","docId":"guides/deploy-guide/bootstrap","unlisted":false},{"type":"category","label":"Services","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Infrastructure","href":"/docs/guides/deploy-guide/services/infrastructure","docId":"guides/deploy-guide/services/infrastructure","unlisted":false},{"type":"link","label":"Network","href":"/docs/guides/deploy-guide/services/network","docId":"guides/deploy-guide/services/network","unlisted":false},{"type":"link","label":"Logging & Monitoring","href":"/docs/guides/deploy-guide/services/logging-monitoring","docId":"guides/deploy-guide/services/logging-monitoring","unlisted":false},{"type":"link","label":"Ceph","href":"/docs/guides/deploy-guide/services/ceph","docId":"guides/deploy-guide/services/ceph","unlisted":false},{"type":"link","label":"OpenStack","href":"/docs/guides/deploy-guide/services/openstack","docId":"guides/deploy-guide/services/openstack","unlisted":false}],"href":"/docs/guides/deploy-guide/services/"},{"type":"category","label":"Examples","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Cloud in a Box","href":"/docs/guides/deploy-guide/examples/cloud-in-a-box","docId":"guides/deploy-guide/examples/cloud-in-a-box","unlisted":false},{"type":"link","label":"Testbed","href":"/docs/guides/deploy-guide/examples/testbed","docId":"guides/deploy-guide/examples/testbed","unlisted":false}],"href":"/docs/guides/deploy-guide/examples/"}],"href":"/docs/guides/deploy-guide/"},{"type":"category","label":"Upgrade Guide","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Manager","href":"/docs/guides/upgrade-guide/manager","docId":"guides/upgrade-guide/manager","unlisted":false},{"type":"link","label":"Network","href":"/docs/guides/upgrade-guide/network","docId":"guides/upgrade-guide/network","unlisted":false},{"type":"link","label":"Ceph","href":"/docs/guides/upgrade-guide/ceph","docId":"guides/upgrade-guide/ceph","unlisted":false},{"type":"link","label":"Docker","href":"/docs/guides/upgrade-guide/docker","docId":"guides/upgrade-guide/docker","unlisted":false},{"type":"link","label":"Infrastructure","href":"/docs/guides/upgrade-guide/infrastructure","docId":"guides/upgrade-guide/infrastructure","unlisted":false},{"type":"link","label":"Logging & Monitoring","href":"/docs/guides/upgrade-guide/logging-monitoring","docId":"guides/upgrade-guide/logging-monitoring","unlisted":false},{"type":"link","label":"OpenStack","href":"/docs/guides/upgrade-guide/openstack","docId":"guides/upgrade-guide/openstack","unlisted":false}],"href":"/docs/guides/upgrade-guide/"},{"type":"category","label":"Configuration Guide","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Configuration repository","href":"/docs/guides/configuration-guide/configuration-repository","docId":"guides/configuration-guide/configuration-repository","unlisted":false},{"type":"link","label":"Inventory","href":"/docs/guides/configuration-guide/inventory","docId":"guides/configuration-guide/inventory","unlisted":false},{"type":"link","label":"Manager","href":"/docs/guides/configuration-guide/manager","docId":"guides/configuration-guide/manager","unlisted":false},{"type":"category","label":"Commons","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Network","href":"/docs/guides/configuration-guide/commons/network","docId":"guides/configuration-guide/commons/network","unlisted":false},{"type":"link","label":"Packages","href":"/docs/guides/configuration-guide/commons/packages","docId":"guides/configuration-guide/commons/packages","unlisted":false},{"type":"link","label":"Services","href":"/docs/guides/configuration-guide/commons/services","docId":"guides/configuration-guide/commons/services","unlisted":false},{"type":"link","label":"SSH Config","href":"/docs/guides/configuration-guide/commons/sshconfig","docId":"guides/configuration-guide/commons/sshconfig","unlisted":false},{"type":"link","label":"Sysctl","href":"/docs/guides/configuration-guide/commons/sysctl","docId":"guides/configuration-guide/commons/sysctl","unlisted":false},{"type":"link","label":"Timezone","href":"/docs/guides/configuration-guide/commons/timezone","docId":"guides/configuration-guide/commons/timezone","unlisted":false}],"href":"/docs/guides/configuration-guide/commons/"},{"type":"link","label":"Services","href":"/docs/guides/configuration-guide/services/","docId":"guides/configuration-guide/services/index","unlisted":false},{"type":"link","label":"Ceph","href":"/docs/guides/configuration-guide/ceph","docId":"guides/configuration-guide/ceph","unlisted":false},{"type":"category","label":"OpenStack","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Horizon","href":"/docs/guides/configuration-guide/openstack/horizon","docId":"guides/configuration-guide/openstack/horizon","unlisted":false},{"type":"link","label":"Keystone","href":"/docs/guides/configuration-guide/openstack/keystone","docId":"guides/configuration-guide/openstack/keystone","unlisted":false}],"href":"/docs/guides/configuration-guide/openstack/"},{"type":"link","label":"Proxy","href":"/docs/guides/configuration-guide/proxy","docId":"guides/configuration-guide/proxy","unlisted":false},{"type":"link","label":"Self-signed certificates","href":"/docs/guides/configuration-guide/self-signed-certificates","docId":"guides/configuration-guide/self-signed-certificates","unlisted":false}],"href":"/docs/guides/configuration-guide/"},{"type":"category","label":"Operations Guide","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"Manager","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Apply","href":"/docs/guides/operations-guide/manager/apply","docId":"guides/operations-guide/manager/apply","unlisted":false},{"type":"link","label":"Logging","href":"/docs/guides/operations-guide/manager/log","docId":"guides/operations-guide/manager/log","unlisted":false},{"type":"link","label":"Console","href":"/docs/guides/operations-guide/manager/console","docId":"guides/operations-guide/manager/console","unlisted":false},{"type":"link","label":"Task","href":"/docs/guides/operations-guide/manager/task","docId":"guides/operations-guide/manager/task","unlisted":false}],"href":"/docs/guides/operations-guide/manager/"},{"type":"link","label":"Ceph","href":"/docs/guides/operations-guide/ceph","docId":"guides/operations-guide/ceph","unlisted":false},{"type":"category","label":"OpenStack","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Cinder","href":"/docs/guides/operations-guide/openstack/cinder","docId":"guides/operations-guide/openstack/cinder","unlisted":false},{"type":"link","label":"Octavia","href":"/docs/guides/operations-guide/openstack/octavia","docId":"guides/operations-guide/openstack/octavia","unlisted":false},{"type":"category","label":"Day-2 Operations","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Playbooks","href":"/docs/guides/operations-guide/openstack/day2-operations/playbooks","docId":"guides/operations-guide/openstack/day2-operations/playbooks","unlisted":false},{"type":"link","label":"Image Manager","href":"/docs/guides/operations-guide/openstack/day2-operations/image-manager","docId":"guides/operations-guide/openstack/day2-operations/image-manager","unlisted":false},{"type":"link","label":"Flavor Manager","href":"/docs/guides/operations-guide/openstack/day2-operations/flavor-manager","docId":"guides/operations-guide/openstack/day2-operations/flavor-manager","unlisted":false},{"type":"link","label":"Resource Manager","href":"/docs/guides/operations-guide/openstack/day2-operations/resource-manager","docId":"guides/operations-guide/openstack/day2-operations/resource-manager","unlisted":false},{"type":"link","label":"Project Manager","href":"/docs/guides/operations-guide/openstack/day2-operations/project-manager","docId":"guides/operations-guide/openstack/day2-operations/project-manager","unlisted":false},{"type":"link","label":"Sandbox Manager","href":"/docs/guides/operations-guide/openstack/day2-operations/sandbox-manager","docId":"guides/operations-guide/openstack/day2-operations/sandbox-manager","unlisted":false}],"href":"/docs/guides/operations-guide/openstack/day2-operations/"}],"href":"/docs/guides/operations-guide/openstack/"}],"href":"/docs/guides/operations-guide/"},{"type":"category","label":"Troubleshooting Guide","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Manager","href":"/docs/guides/troubleshooting-guide/manager","docId":"guides/troubleshooting-guide/manager","unlisted":false},{"type":"link","label":"OpenStack","href":"/docs/guides/troubleshooting-guide/openstack","docId":"guides/troubleshooting-guide/openstack","unlisted":false}],"href":"/docs/guides/troubleshooting-guide/"},{"type":"category","label":"Other Guides","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Contributor Guide","href":"/docs/guides/other-guides/contributor-guide","docId":"guides/other-guides/contributor-guide","unlisted":false},{"type":"category","label":"Developer Guide","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Releases","href":"/docs/guides/other-guides/developer-guide/releases","docId":"guides/other-guides/developer-guide/releases","unlisted":false},{"type":"link","label":"Scripts","href":"/docs/guides/other-guides/developer-guide/scripts","docId":"guides/other-guides/developer-guide/scripts","unlisted":false},{"type":"link","label":"Zuul Ci","href":"/docs/guides/other-guides/developer-guide/zuul-ci","docId":"guides/other-guides/developer-guide/zuul-ci","unlisted":false}],"href":"/docs/guides/other-guides/developer-guide/"},{"type":"link","label":"Style Guide","href":"/docs/guides/other-guides/style-guide","docId":"guides/other-guides/style-guide","unlisted":false},{"type":"link","label":"Zuul CI","href":"/docs/guides/other-guides/zuul","docId":"guides/other-guides/zuul","unlisted":false}],"href":"/docs/guides/other-guides/"}],"href":"/docs/guides/"},{"type":"category","label":"References","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Command line interface reference","href":"/docs/references/cli","docId":"references/cli","unlisted":false},{"type":"link","label":"Configuration reference","href":"/docs/references/configuration","docId":"references/configuration","unlisted":false},{"type":"link","label":"Parameters reference","href":"/docs/references/parameters","docId":"references/parameters","unlisted":false}],"href":"/docs/references/"},{"type":"category","label":"Release Notes","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"OSISM 6.0.0","href":"/docs/release-notes/osism-6","docId":"release-notes/osism-6","unlisted":false}],"href":"/docs/release-notes/"},{"type":"category","label":"Appendix","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Glossary","href":"/docs/appendix/glossary","docId":"appendix/glossary","unlisted":false},{"type":"link","label":"Standards","href":"/docs/appendix/standards","docId":"appendix/standards","unlisted":false}],"href":"/docs/appendix/"}]},"docs":{"appendix/glossary":{"id":"appendix/glossary","title":"Glossary","description":"\ud83d\udca1 This section serves as the central glossary within OSISM. It is intended to clearly define","sidebar":"tutorialSidebar"},"appendix/index":{"id":"appendix/index","title":"Appendix","description":"","sidebar":"tutorialSidebar"},"appendix/standards":{"id":"appendix/standards","title":"Standards","description":"| Name | OSISM Documentation | SCS Standard Track | SCS Standard | SCS Documentation |","sidebar":"tutorialSidebar"},"getting-started":{"id":"getting-started","title":"Getting Started","description":"Deployment","sidebar":"tutorialSidebar"},"guides/configuration-guide/ceph":{"id":"guides/configuration-guide/ceph","title":"Ceph","description":"Unique Identifier","sidebar":"tutorialSidebar"},"guides/configuration-guide/commons/index":{"id":"guides/configuration-guide/commons/index","title":"Commons","description":"This section contains the documentation of the Ansible collection osism.commons.","sidebar":"tutorialSidebar"},"guides/configuration-guide/commons/network":{"id":"guides/configuration-guide/commons/network","title":"Network","description":"The osism.commons.network role is used for the netwok configuration.","sidebar":"tutorialSidebar"},"guides/configuration-guide/commons/packages":{"id":"guides/configuration-guide/commons/packages","title":"Packages","description":"With the osism.commons.packages role, it is possible to add packages on a node","sidebar":"tutorialSidebar"},"guides/configuration-guide/commons/services":{"id":"guides/configuration-guide/commons/services","title":"Services","description":"With the osism.commons.services role, it is possible to manage services on a node","sidebar":"tutorialSidebar"},"guides/configuration-guide/commons/sshconfig":{"id":"guides/configuration-guide/commons/sshconfig","title":"SSH Config","description":"With the osism.commons.sshconfig role, it is possible to manage a SSH config","sidebar":"tutorialSidebar"},"guides/configuration-guide/commons/sysctl":{"id":"guides/configuration-guide/commons/sysctl","title":"Sysctl","description":"With the osism.commons.sysctl role, it is possible to manage the attributes of the kernel","sidebar":"tutorialSidebar"},"guides/configuration-guide/commons/timezone":{"id":"guides/configuration-guide/commons/timezone","title":"Timezone","description":"With the osism.commons.timezone role, it is possible to manage the used timezone on a node.","sidebar":"tutorialSidebar"},"guides/configuration-guide/configuration-repository":{"id":"guides/configuration-guide/configuration-repository","title":"Configuration Repository","description":"The configuration required for OSISM is stored in a single Git monorepo, the configuration repository.","sidebar":"tutorialSidebar"},"guides/configuration-guide/index":{"id":"guides/configuration-guide/index","title":"Configuration Guide","description":"","sidebar":"tutorialSidebar"},"guides/configuration-guide/inventory":{"id":"guides/configuration-guide/inventory","title":"Inventory","description":"The inventory used for the environment is located in the inventory directory.","sidebar":"tutorialSidebar"},"guides/configuration-guide/manager":{"id":"guides/configuration-guide/manager","title":"Manager","description":"Stable release","sidebar":"tutorialSidebar"},"guides/configuration-guide/openstack/horizon":{"id":"guides/configuration-guide/openstack/horizon","title":"Horizon","description":"Problems uploading machine images larger than 1 GiB","sidebar":"tutorialSidebar"},"guides/configuration-guide/openstack/index":{"id":"guides/configuration-guide/openstack/index","title":"OpenStack","description":"Network interfaces","sidebar":"tutorialSidebar"},"guides/configuration-guide/openstack/keystone":{"id":"guides/configuration-guide/openstack/keystone","title":"Keystone","description":"Domain manager role","sidebar":"tutorialSidebar"},"guides/configuration-guide/proxy":{"id":"guides/configuration-guide/proxy","title":"Proxy","description":"","sidebar":"tutorialSidebar"},"guides/configuration-guide/self-signed-certificates":{"id":"guides/configuration-guide/self-signed-certificates","title":"Self-signed certificates","description":"OpenStack","sidebar":"tutorialSidebar"},"guides/configuration-guide/services/index":{"id":"guides/configuration-guide/services/index","title":"Services","description":"This section contains the documentation of the Ansible collection osism.services.","sidebar":"tutorialSidebar"},"guides/deploy-guide/bootstrap":{"id":"guides/deploy-guide/bootstrap","title":"Bootstrap","description":"Before the nodes can be bootstrapped, they must all have already been provisioned.","sidebar":"tutorialSidebar"},"guides/deploy-guide/examples/cloud-in-a-box":{"id":"guides/deploy-guide/examples/cloud-in-a-box","title":"Cloud in a Box - CiaB","description":"\ud83d\udca1 Cloud in a Box (CiaB) is a minimalistic installation of the latest stable OSISM release with only services which are needed to","sidebar":"tutorialSidebar"},"guides/deploy-guide/examples/index":{"id":"guides/deploy-guide/examples/index","title":"Examples","description":"","sidebar":"tutorialSidebar"},"guides/deploy-guide/examples/testbed":{"id":"guides/deploy-guide/examples/testbed","title":"Testbed","description":"\ud83d\udca1 With the OSISM Testbed, it is possible to run a full Sovereign Cloud Stack","sidebar":"tutorialSidebar"},"guides/deploy-guide/index":{"id":"guides/deploy-guide/index","title":"Deploy Guide","description":"\ud83d\udca1 The Deploy Guide describe how to provision, bootstrap and deploy nodes and services.","sidebar":"tutorialSidebar"},"guides/deploy-guide/manager":{"id":"guides/deploy-guide/manager","title":"Manager","description":"Change into the configuration/environments/manager directory of the configuration repository.","sidebar":"tutorialSidebar"},"guides/deploy-guide/provisioning":{"id":"guides/deploy-guide/provisioning","title":"Provisioning of management and control plane nodes","description":"For the initial deployment of the management plane and the control plane of OSISM,","sidebar":"tutorialSidebar"},"guides/deploy-guide/seed":{"id":"guides/deploy-guide/seed","title":"Seed","description":"The seed node is used once for the initial bootstrap of the manager node. It is sufficient","sidebar":"tutorialSidebar"},"guides/deploy-guide/services/ceph":{"id":"guides/deploy-guide/services/ceph","title":"Ceph","description":"1. Deploy base services.","sidebar":"tutorialSidebar"},"guides/deploy-guide/services/index":{"id":"guides/deploy-guide/services/index","title":"Services","description":"Getting started","sidebar":"tutorialSidebar"},"guides/deploy-guide/services/infrastructure":{"id":"guides/deploy-guide/services/infrastructure","title":"Infrastructure","description":"Common issues with deploying infrastructure services required by OpenStack","sidebar":"tutorialSidebar"},"guides/deploy-guide/services/logging-monitoring":{"id":"guides/deploy-guide/services/logging-monitoring","title":"Logging & Monitoring","description":"Common issues with deploying logging & monitoring services provided by Kolla","sidebar":"tutorialSidebar"},"guides/deploy-guide/services/network":{"id":"guides/deploy-guide/services/network","title":"Network","description":"Open vSwitch","sidebar":"tutorialSidebar"},"guides/deploy-guide/services/openstack":{"id":"guides/deploy-guide/services/openstack","title":"OpenStack","description":"Common issues with deploying OpenStack services are documented in the","sidebar":"tutorialSidebar"},"guides/index":{"id":"guides/index","title":"Guides","description":"","sidebar":"tutorialSidebar"},"guides/operations-guide/ceph":{"id":"guides/operations-guide/ceph","title":"Ceph operations cheatsheet","description":"Where to find docs","sidebar":"tutorialSidebar"},"guides/operations-guide/index":{"id":"guides/operations-guide/index","title":"Operations Guide","description":"Node states","sidebar":"tutorialSidebar"},"guides/operations-guide/manager/apply":{"id":"guides/operations-guide/manager/apply","title":"Apply","description":"List all available plays","sidebar":"tutorialSidebar"},"guides/operations-guide/manager/console":{"id":"guides/operations-guide/manager/console","title":"Console","description":"A console command is available in the OSISM CLI. This allows specific parts of the","sidebar":"tutorialSidebar"},"guides/operations-guide/manager/index":{"id":"guides/operations-guide/manager/index","title":"Manager","description":"OSISM orchestrator","sidebar":"tutorialSidebar"},"guides/operations-guide/manager/log":{"id":"guides/operations-guide/manager/log","title":"Logging","description":"Ansible","sidebar":"tutorialSidebar"},"guides/operations-guide/manager/task":{"id":"guides/operations-guide/manager/task","title":"Task","description":"List","sidebar":"tutorialSidebar"},"guides/operations-guide/openstack/cinder":{"id":"guides/operations-guide/openstack/cinder","title":"Cinder","description":"Remove service","sidebar":"tutorialSidebar"},"guides/operations-guide/openstack/day2-operations/flavor-manager":{"id":"guides/operations-guide/openstack/day2-operations/flavor-manager","title":"Flavor Manager","description":"Overview","sidebar":"tutorialSidebar"},"guides/operations-guide/openstack/day2-operations/image-manager":{"id":"guides/operations-guide/openstack/day2-operations/image-manager","title":"Image Manager","description":"The OpenStack Image Manager is a tool for managing all images on an OpenStack environment","sidebar":"tutorialSidebar"},"guides/operations-guide/openstack/day2-operations/index":{"id":"guides/operations-guide/openstack/day2-operations/index","title":"Day-2 Operations","description":"","sidebar":"tutorialSidebar"},"guides/operations-guide/openstack/day2-operations/playbooks":{"id":"guides/operations-guide/openstack/day2-operations/playbooks","title":"Playbooks","description":"Host aggregates","sidebar":"tutorialSidebar"},"guides/operations-guide/openstack/day2-operations/project-manager":{"id":"guides/operations-guide/openstack/day2-operations/project-manager","title":"Project Manager","description":"","sidebar":"tutorialSidebar"},"guides/operations-guide/openstack/day2-operations/resource-manager":{"id":"guides/operations-guide/openstack/day2-operations/resource-manager","title":"Resource Manager","description":"Octavia","sidebar":"tutorialSidebar"},"guides/operations-guide/openstack/day2-operations/sandbox-manager":{"id":"guides/operations-guide/openstack/day2-operations/sandbox-manager","title":"Sandbox Manager","description":"","sidebar":"tutorialSidebar"},"guides/operations-guide/openstack/index":{"id":"guides/operations-guide/openstack/index","title":"OpenStack","description":"Add a new compute node","sidebar":"tutorialSidebar"},"guides/operations-guide/openstack/octavia":{"id":"guides/operations-guide/openstack/octavia","title":"Octavia","description":"Cleanup of amphora missing from the DB","sidebar":"tutorialSidebar"},"guides/other-guides/contributor-guide":{"id":"guides/other-guides/contributor-guide","title":"Contributor Guide","description":"We welcome any issues, change requests or general feedback. Do not hestiate to open an issue.","sidebar":"tutorialSidebar"},"guides/other-guides/developer-guide/index":{"id":"guides/other-guides/developer-guide/index","title":"Developer Guide","description":"How to add a new service","sidebar":"tutorialSidebar"},"guides/other-guides/developer-guide/releases":{"id":"guides/other-guides/developer-guide/releases","title":"Releases","description":"How we handle releases","sidebar":"tutorialSidebar"},"guides/other-guides/developer-guide/scripts":{"id":"guides/other-guides/developer-guide/scripts","title":"Scripts","description":"Scripts are included in container images to simplify development work and to enable","sidebar":"tutorialSidebar"},"guides/other-guides/developer-guide/zuul-ci":{"id":"guides/other-guides/developer-guide/zuul-ci","title":"Zuul CI","description":"We use Zuul CI for our CI. Our Zuul CI instance is available","sidebar":"tutorialSidebar"},"guides/other-guides/index":{"id":"guides/other-guides/index","title":"Other Guides","description":"","sidebar":"tutorialSidebar"},"guides/other-guides/style-guide":{"id":"guides/other-guides/style-guide","title":"Style Guide","description":"Ansible","sidebar":"tutorialSidebar"},"guides/other-guides/zuul":{"id":"guides/other-guides/zuul","title":"Zuul CI","description":"We use Zuul CI as a CI service for OSISM. The service is not required for","sidebar":"tutorialSidebar"},"guides/troubleshooting-guide/index":{"id":"guides/troubleshooting-guide/index","title":"Troubleshooting Guide","description":"\ud83d\udca1 The Troubleshooting Guide describe how to solve issues.","sidebar":"tutorialSidebar"},"guides/troubleshooting-guide/manager":{"id":"guides/troubleshooting-guide/manager","title":"Manager","description":"Reset","sidebar":"tutorialSidebar"},"guides/troubleshooting-guide/openstack":{"id":"guides/troubleshooting-guide/openstack","title":"OpenStack","description":"Database creation fails","sidebar":"tutorialSidebar"},"guides/upgrade-guide/ceph":{"id":"guides/upgrade-guide/ceph","title":"Ceph","description":"","sidebar":"tutorialSidebar"},"guides/upgrade-guide/docker":{"id":"guides/upgrade-guide/docker","title":"Docker","description":"The Docker version used is defined via the parameter docker_version in the file","sidebar":"tutorialSidebar"},"guides/upgrade-guide/index":{"id":"guides/upgrade-guide/index","title":"Upgrade Guide","description":"In the examples, the pull of images (if supported by a role) is always run first. While","sidebar":"tutorialSidebar"},"guides/upgrade-guide/infrastructure":{"id":"guides/upgrade-guide/infrastructure","title":"Infrastructure","description":"Kubernetes","sidebar":"tutorialSidebar"},"guides/upgrade-guide/logging-monitoring":{"id":"guides/upgrade-guide/logging-monitoring","title":"Logging & Monitoring","description":"OpenSearch","sidebar":"tutorialSidebar"},"guides/upgrade-guide/manager":{"id":"guides/upgrade-guide/manager","title":"Manager","description":"Always read the release notes first to learn what has changed and what","sidebar":"tutorialSidebar"},"guides/upgrade-guide/network":{"id":"guides/upgrade-guide/network","title":"Network","description":"Open vSwitch","sidebar":"tutorialSidebar"},"guides/upgrade-guide/openstack":{"id":"guides/upgrade-guide/openstack","title":"OpenStack","description":"Keystone","sidebar":"tutorialSidebar"},"intro/architecture":{"id":"intro/architecture","title":"Architecture","description":"OSISM total overview","sidebar":"tutorialSidebar"},"intro/index":{"id":"intro/index","title":"Introduction","description":"This documentation is currently under construction and is not yet complete.","sidebar":"tutorialSidebar"},"references/cli":{"id":"references/cli","title":"Command line interface reference","description":"","sidebar":"tutorialSidebar"},"references/configuration":{"id":"references/configuration","title":"Configuration reference","description":"","sidebar":"tutorialSidebar"},"references/index":{"id":"references/index","title":"References","description":"","sidebar":"tutorialSidebar"},"references/parameters":{"id":"references/parameters","title":"Parameters reference","description":"","sidebar":"tutorialSidebar"},"release-notes/index":{"id":"release-notes/index","title":"Release Notes","description":"","sidebar":"tutorialSidebar"},"release-notes/osism-6":{"id":"release-notes/osism-6","title":"OSISM 6.0.0","description":"","sidebar":"tutorialSidebar"}}}')}}]);
\ No newline at end of file
diff --git a/assets/js/a6659507.1016b4a7.js b/assets/js/a6659507.1016b4a7.js
deleted file mode 100644
index ea6cdce996..0000000000
--- a/assets/js/a6659507.1016b4a7.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkosism=self.webpackChunkosism||[]).push([[9498],{8862:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>p,frontMatter:()=>s,metadata:()=>a,toc:()=>d});var o=n(5893),i=n(1151);const s={sidebar_label:"OpenStack",sidebar_position:60},r="OpenStack",a={id:"guides/operations-guide/openstack/index",title:"OpenStack",description:"",source:"@site/docs/guides/operations-guide/openstack/index.md",sourceDirName:"guides/operations-guide/openstack",slug:"/guides/operations-guide/openstack/",permalink:"/docs/guides/operations-guide/openstack/",draft:!1,unlisted:!1,editUrl:"https://github.com/osism/osism.github.io/tree/main/docs/guides/operations-guide/openstack/index.md",tags:[],version:"current",sidebarPosition:60,frontMatter:{sidebar_label:"OpenStack",sidebar_position:60},sidebar:"tutorialSidebar",previous:{title:"Ceph",permalink:"/docs/guides/operations-guide/ceph"},next:{title:"Cinder",permalink:"/docs/guides/operations-guide/openstack/cinder"}},c={},d=[];function u(e){const t={h1:"h1",...(0,i.a)(),...e.components};return(0,o.jsx)(t.h1,{id:"openstack",children:"OpenStack"})}function p(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(u,{...e})}):u(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>a,a:()=>r});var o=n(7294);const i={},s=o.createContext(i);function r(e){const t=o.useContext(s);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),o.createElement(s.Provider,{value:t},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/a6659507.feb5b62a.js b/assets/js/a6659507.feb5b62a.js
new file mode 100644
index 0000000000..2c2638d36a
--- /dev/null
+++ b/assets/js/a6659507.feb5b62a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkosism=self.webpackChunkosism||[]).push([[9498],{8862:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>d,contentTitle:()=>a,default:()=>l,frontMatter:()=>i,metadata:()=>p,toc:()=>r});var s=o(5893),t=o(1151);const i={sidebar_label:"OpenStack",sidebar_position:60},a="OpenStack",p={id:"guides/operations-guide/openstack/index",title:"OpenStack",description:"Add a new compute node",source:"@site/docs/guides/operations-guide/openstack/index.md",sourceDirName:"guides/operations-guide/openstack",slug:"/guides/operations-guide/openstack/",permalink:"/docs/guides/operations-guide/openstack/",draft:!1,unlisted:!1,editUrl:"https://github.com/osism/osism.github.io/tree/main/docs/guides/operations-guide/openstack/index.md",tags:[],version:"current",sidebarPosition:60,frontMatter:{sidebar_label:"OpenStack",sidebar_position:60},sidebar:"tutorialSidebar",previous:{title:"Ceph",permalink:"/docs/guides/operations-guide/ceph"},next:{title:"Cinder",permalink:"/docs/guides/operations-guide/openstack/cinder"}},d={},r=[{value:"Add a new compute node",id:"add-a-new-compute-node",level:2}];function c(e){const n={code:"code",h1:"h1",h2:"h2",p:"p",pre:"pre",...(0,t.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"openstack",children:"OpenStack"}),"\n",(0,s.jsx)(n.h2,{id:"add-a-new-compute-node",children:"Add a new compute node"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"osism apply operator -u osism -l NODE\nosism apply bootstrap -l NODE\nosism apply common -l NODE\nosism apply openvswitch -l NODE\nosism apply ovn -l NODE\nosism apply prometheus -l NODE\nosism apply ceilometer -l NODE\nosism apply neutron -l NODE\nosism apply nova -l NODE\n"})}),"\n",(0,s.jsx)(n.p,{children:"If Scaphandre is used:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"osism apply scaphandre -l NODE\n"})})]})}function l(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},1151:(e,n,o)=>{o.d(n,{Z:()=>p,a:()=>a});var s=o(7294);const t={},i=s.createContext(t);function a(e){const n=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function p(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:a(e.components),s.createElement(i.Provider,{value:n},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/runtime~main.f0cafbb0.js b/assets/js/runtime~main.89f6881e.js
similarity index 97%
rename from assets/js/runtime~main.f0cafbb0.js
rename to assets/js/runtime~main.89f6881e.js
index 20eca217e9..5d3c7037fd 100644
--- a/assets/js/runtime~main.f0cafbb0.js
+++ b/assets/js/runtime~main.89f6881e.js
@@ -1 +1 @@
-(()=>{"use strict";var e,f,a,c,d,b={},t={};function r(e){var f=t[e];if(void 0!==f)return f.exports;var a=t[e]={id:e,loaded:!1,exports:{}};return b[e].call(a.exports,a,a.exports,r),a.loaded=!0,a.exports}r.m=b,r.c=t,e=[],r.O=(f,a,c,d)=>{if(!a){var b=1/0;for(i=0;i=d)&&Object.keys(r.O).every((e=>r.O[e](a[o])))?a.splice(o--,1):(t=!1,d0&&e[i-1][2]>d;i--)e[i]=e[i-1];e[i]=[a,c,d]},r.n=e=>{var f=e&&e.__esModule?()=>e.default:()=>e;return r.d(f,{a:f}),f},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,c){if(1&c&&(e=this(e)),8&c)return e;if("object"==typeof e&&e){if(4&c&&e.__esModule)return e;if(16&c&&"function"==typeof e.then)return e}var d=Object.create(null);r.r(d);var b={};f=f||[null,a({}),a([]),a(a)];for(var t=2&c&&e;"object"==typeof t&&!~f.indexOf(t);t=a(t))Object.getOwnPropertyNames(t).forEach((f=>b[f]=()=>e[f]));return b.default=()=>e,r.d(d,b),d},r.d=(e,f)=>{for(var a in f)r.o(f,a)&&!r.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:f[a]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((f,a)=>(r.f[a](e,f),f)),[])),r.u=e=>"assets/js/"+({53:"935f2afb",110:"66406991",366:"d0f03c80",453:"30a24c52",533:"b2b675dd",609:"0658869c",770:"3f74a1dc",948:"8717b14a",1033:"3a24b32a",1100:"ccc45f31",1172:"7a4fffdf",1195:"e29aad9d",1336:"f3e1e4c4",1355:"d3108c07",1391:"6c11aa3a",1477:"b2f554cd",1511:"6a1f4bec",1518:"5bc03735",1574:"de57d45c",1628:"807e695f",1633:"031793e1",1713:"a7023ddc",1734:"2f914c76",1748:"8e5f32ed",1757:"3934058b",1914:"d9f32620",1943:"ae934d1a",2018:"c45d899e",2267:"59362658",2309:"0fd4c4b6",2362:"e273c56f",2535:"814f3328",2540:"88884f83",2681:"78b4ae99",2716:"04e17c9d",2753:"2b5b0fc4",2840:"29cf976d",2871:"d03241c9",3085:"1f391b9e",3089:"a6aa9e1f",3188:"e934a396",3205:"a80da1cf",3216:"6fb2b956",3394:"8da03187",3432:"ad26905b",3514:"73664a40",3608:"9e4087bc",3713:"1e80d022",3724:"596b1512",3980:"8352bc95",4013:"01a85c17",4022:"5845507f",4118:"59e4bf9a",4141:"f7ca8893",4195:"c4f5d8e4",4329:"dbbbc829",4368:"a94703ab",4488:"bed2b685",4557:"7d57f1c1",4689:"b4b93543",4744:"b798ea2b",4905:"7c2d5d83",4931:"762b083e",4983:"b614c3e5",5182:"43f3e48b",5322:"c78af355",5655:"08ca43f3",5826:"f7e4724a",5834:"096c7093",5846:"9c2dc5c0",5961:"fb66bc4c",6103:"ccc49370",6236:"02601e42",6299:"07d5b948",6315:"3eec1f83",6330:"dbe528c9",6378:"90342430",6454:"09ec98ee",6537:"db7ff767",6578:"3e117606",6641:"b68de40d",6876:"07742d97",6891:"0f52743c",6938:"608ae6a4",7155:"74b846e2",7162:"d589d3a7",7178:"096bfee4",7414:"393be207",7485:"49278f49",7632:"b88e2faf",7720:"31da1720",7918:"17896441",8019:"15cba8f7",8157:"e0698a94",8172:"f4c1e300",8187:"8ff7deab",8367:"09a97616",8461:"0884bdbc",8518:"a7bd4aaa",8521:"4632ab68",8527:"45fcaf07",8610:"6875c492",8636:"f4f34a3a",8730:"42bbc814",9003:"925b3f96",9035:"4c9e35b1",9174:"456706c7",9183:"326f19e1",9246:"c9821a2e",9372:"2c0b3ec5",9377:"fac2b365",9498:"a6659507",9588:"70acb529",9642:"7661071f",9654:"6f6bf91f",9661:"5e95c892",9700:"e16015ca"}[e]||e)+"."+{53:"5ce41e84",110:"3b251721",366:"79a42e26",453:"a158a92f",533:"90afecae",609:"000fed42",770:"b6260afa",948:"5aad819f",1033:"aa4ed749",1100:"da787644",1172:"7e20c030",1195:"85078301",1336:"a7763d65",1355:"28d0965f",1391:"42693d26",1477:"beaa1832",1511:"c59cf9f2",1518:"7e4acf4d",1574:"6fe9c73b",1628:"af41145b",1633:"ca83e151",1713:"4eea03b9",1734:"48f7f8a5",1748:"8feadc1d",1757:"e78c1df1",1772:"d11fac60",1914:"fb6fa8bc",1943:"accaf241",2018:"634c5327",2196:"2676aaef",2267:"2f157a04",2309:"7ba75290",2362:"42c3ebab",2535:"c38747f3",2540:"4793f9f6",2681:"6855b586",2716:"c38fe0a8",2753:"8ed829fe",2840:"b09370d0",2871:"5b1e7f48",3085:"9f3fe42d",3089:"7a509f3d",3188:"40917de9",3205:"c0c3e967",3216:"88eb4771",3394:"71b5824c",3432:"37ca8a84",3514:"310edf08",3608:"8f60ee35",3713:"7964af5d",3724:"dab3a8bd",3980:"4625bb6c",4013:"d743222a",4022:"c58d485c",4118:"bda3bcd3",4141:"7570e8c8",4195:"129f1776",4329:"07773006",4368:"64e5d53d",4488:"ac881e55",4557:"3a38411b",4689:"d6c476a1",4744:"788aaf4b",4905:"5b298e5d",4931:"2cd763d2",4983:"6e7e1660",5182:"6ca40222",5322:"7ad83d1e",5655:"ce3dd527",5826:"95977404",5834:"7b35c9d1",5846:"bbaa7d21",5961:"c4386f8a",6103:"618fab3b",6236:"798d71a1",6299:"0194666a",6315:"65aad5b1",6330:"38051eff",6378:"c6c2e3da",6454:"cfe48152",6537:"abb7deee",6578:"bf628f1c",6641:"5061f32a",6876:"ac0b276c",6891:"f9bb505b",6938:"ceaf3ae1",7155:"7cf3aae1",7162:"f89e57dc",7178:"5ea2728c",7414:"c11fb6fe",7485:"3647e6fa",7632:"b97b2546",7720:"e5c4c542",7918:"20238007",8019:"1f43f06c",8157:"7d1f772a",8172:"a29c6c79",8187:"bf6ddd36",8367:"8916b6f2",8461:"407e37a2",8518:"89fe4821",8521:"1be78293",8527:"b43c09a6",8610:"bd442cd2",8636:"9bfb60db",8730:"b9aff477",9003:"65eec07f",9035:"004f5649",9174:"b25a763f",9183:"73d01a29",9246:"41010e1f",9372:"e0f92b83",9377:"ad2dc31c",9498:"1016b4a7",9588:"9510824b",9642:"a3969797",9654:"fec9b4df",9661:"52c8da28",9677:"e1301640",9700:"0e006377"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,f)=>Object.prototype.hasOwnProperty.call(e,f),c={},d="osism:",r.l=(e,f,a,b)=>{if(c[e])c[e].push(f);else{var t,o;if(void 0!==a)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var d=c[e];if(delete c[e],t.parentNode&&t.parentNode.removeChild(t),d&&d.forEach((e=>e(a))),f)return f(a)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={17896441:"7918",59362658:"2267",66406991:"110",90342430:"6378","935f2afb":"53",d0f03c80:"366","30a24c52":"453",b2b675dd:"533","0658869c":"609","3f74a1dc":"770","8717b14a":"948","3a24b32a":"1033",ccc45f31:"1100","7a4fffdf":"1172",e29aad9d:"1195",f3e1e4c4:"1336",d3108c07:"1355","6c11aa3a":"1391",b2f554cd:"1477","6a1f4bec":"1511","5bc03735":"1518",de57d45c:"1574","807e695f":"1628","031793e1":"1633",a7023ddc:"1713","2f914c76":"1734","8e5f32ed":"1748","3934058b":"1757",d9f32620:"1914",ae934d1a:"1943",c45d899e:"2018","0fd4c4b6":"2309",e273c56f:"2362","814f3328":"2535","88884f83":"2540","78b4ae99":"2681","04e17c9d":"2716","2b5b0fc4":"2753","29cf976d":"2840",d03241c9:"2871","1f391b9e":"3085",a6aa9e1f:"3089",e934a396:"3188",a80da1cf:"3205","6fb2b956":"3216","8da03187":"3394",ad26905b:"3432","73664a40":"3514","9e4087bc":"3608","1e80d022":"3713","596b1512":"3724","8352bc95":"3980","01a85c17":"4013","5845507f":"4022","59e4bf9a":"4118",f7ca8893:"4141",c4f5d8e4:"4195",dbbbc829:"4329",a94703ab:"4368",bed2b685:"4488","7d57f1c1":"4557",b4b93543:"4689",b798ea2b:"4744","7c2d5d83":"4905","762b083e":"4931",b614c3e5:"4983","43f3e48b":"5182",c78af355:"5322","08ca43f3":"5655",f7e4724a:"5826","096c7093":"5834","9c2dc5c0":"5846",fb66bc4c:"5961",ccc49370:"6103","02601e42":"6236","07d5b948":"6299","3eec1f83":"6315",dbe528c9:"6330","09ec98ee":"6454",db7ff767:"6537","3e117606":"6578",b68de40d:"6641","07742d97":"6876","0f52743c":"6891","608ae6a4":"6938","74b846e2":"7155",d589d3a7:"7162","096bfee4":"7178","393be207":"7414","49278f49":"7485",b88e2faf:"7632","31da1720":"7720","15cba8f7":"8019",e0698a94:"8157",f4c1e300:"8172","8ff7deab":"8187","09a97616":"8367","0884bdbc":"8461",a7bd4aaa:"8518","4632ab68":"8521","45fcaf07":"8527","6875c492":"8610",f4f34a3a:"8636","42bbc814":"8730","925b3f96":"9003","4c9e35b1":"9035","456706c7":"9174","326f19e1":"9183",c9821a2e:"9246","2c0b3ec5":"9372",fac2b365:"9377",a6659507:"9498","70acb529":"9588","7661071f":"9642","6f6bf91f":"9654","5e95c892":"9661",e16015ca:"9700"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(f,a)=>{var c=r.o(e,f)?e[f]:void 0;if(0!==c)if(c)a.push(c[2]);else if(/^(1303|532)$/.test(f))e[f]=0;else{var d=new Promise(((a,d)=>c=e[f]=[a,d]));a.push(c[2]=d);var b=r.p+r.u(f),t=new Error;r.l(b,(a=>{if(r.o(e,f)&&(0!==(c=e[f])&&(e[f]=void 0),c)){var d=a&&("load"===a.type?"missing":a.type),b=a&&a.target&&a.target.src;t.message="Loading chunk "+f+" failed.\n("+d+": "+b+")",t.name="ChunkLoadError",t.type=d,t.request=b,c[1](t)}}),"chunk-"+f,f)}},r.O.j=f=>0===e[f];var f=(f,a)=>{var c,d,b=a[0],t=a[1],o=a[2],n=0;if(b.some((f=>0!==e[f]))){for(c in t)r.o(t,c)&&(r.m[c]=t[c]);if(o)var i=o(r)}for(f&&f(a);n{"use strict";var e,f,a,c,d,b={},t={};function r(e){var f=t[e];if(void 0!==f)return f.exports;var a=t[e]={id:e,loaded:!1,exports:{}};return b[e].call(a.exports,a,a.exports,r),a.loaded=!0,a.exports}r.m=b,r.c=t,e=[],r.O=(f,a,c,d)=>{if(!a){var b=1/0;for(i=0;i=d)&&Object.keys(r.O).every((e=>r.O[e](a[o])))?a.splice(o--,1):(t=!1,d0&&e[i-1][2]>d;i--)e[i]=e[i-1];e[i]=[a,c,d]},r.n=e=>{var f=e&&e.__esModule?()=>e.default:()=>e;return r.d(f,{a:f}),f},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,c){if(1&c&&(e=this(e)),8&c)return e;if("object"==typeof e&&e){if(4&c&&e.__esModule)return e;if(16&c&&"function"==typeof e.then)return e}var d=Object.create(null);r.r(d);var b={};f=f||[null,a({}),a([]),a(a)];for(var t=2&c&&e;"object"==typeof t&&!~f.indexOf(t);t=a(t))Object.getOwnPropertyNames(t).forEach((f=>b[f]=()=>e[f]));return b.default=()=>e,r.d(d,b),d},r.d=(e,f)=>{for(var a in f)r.o(f,a)&&!r.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:f[a]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((f,a)=>(r.f[a](e,f),f)),[])),r.u=e=>"assets/js/"+({53:"935f2afb",110:"66406991",366:"d0f03c80",453:"30a24c52",533:"b2b675dd",609:"0658869c",770:"3f74a1dc",948:"8717b14a",1033:"3a24b32a",1100:"ccc45f31",1172:"7a4fffdf",1195:"e29aad9d",1336:"f3e1e4c4",1355:"d3108c07",1391:"6c11aa3a",1477:"b2f554cd",1511:"6a1f4bec",1518:"5bc03735",1574:"de57d45c",1628:"807e695f",1633:"031793e1",1713:"a7023ddc",1734:"2f914c76",1748:"8e5f32ed",1757:"3934058b",1914:"d9f32620",1943:"ae934d1a",2018:"c45d899e",2267:"59362658",2309:"0fd4c4b6",2362:"e273c56f",2535:"814f3328",2540:"88884f83",2681:"78b4ae99",2716:"04e17c9d",2753:"2b5b0fc4",2840:"29cf976d",2871:"d03241c9",3085:"1f391b9e",3089:"a6aa9e1f",3188:"e934a396",3205:"a80da1cf",3216:"6fb2b956",3394:"8da03187",3432:"ad26905b",3514:"73664a40",3608:"9e4087bc",3713:"1e80d022",3724:"596b1512",3980:"8352bc95",4013:"01a85c17",4022:"5845507f",4118:"59e4bf9a",4141:"f7ca8893",4195:"c4f5d8e4",4329:"dbbbc829",4368:"a94703ab",4488:"bed2b685",4557:"7d57f1c1",4689:"b4b93543",4744:"b798ea2b",4905:"7c2d5d83",4931:"762b083e",4983:"b614c3e5",5182:"43f3e48b",5322:"c78af355",5655:"08ca43f3",5826:"f7e4724a",5834:"096c7093",5846:"9c2dc5c0",5961:"fb66bc4c",6103:"ccc49370",6236:"02601e42",6299:"07d5b948",6315:"3eec1f83",6330:"dbe528c9",6378:"90342430",6454:"09ec98ee",6537:"db7ff767",6578:"3e117606",6641:"b68de40d",6876:"07742d97",6891:"0f52743c",6938:"608ae6a4",7155:"74b846e2",7162:"d589d3a7",7178:"096bfee4",7414:"393be207",7485:"49278f49",7632:"b88e2faf",7720:"31da1720",7918:"17896441",8019:"15cba8f7",8157:"e0698a94",8172:"f4c1e300",8187:"8ff7deab",8367:"09a97616",8461:"0884bdbc",8518:"a7bd4aaa",8521:"4632ab68",8527:"45fcaf07",8610:"6875c492",8636:"f4f34a3a",8730:"42bbc814",9003:"925b3f96",9035:"4c9e35b1",9174:"456706c7",9183:"326f19e1",9246:"c9821a2e",9372:"2c0b3ec5",9377:"fac2b365",9498:"a6659507",9588:"70acb529",9642:"7661071f",9654:"6f6bf91f",9661:"5e95c892",9700:"e16015ca"}[e]||e)+"."+{53:"06ed6f0e",110:"3b251721",366:"79a42e26",453:"a158a92f",533:"90afecae",609:"000fed42",770:"b6260afa",948:"5aad819f",1033:"aa4ed749",1100:"da787644",1172:"7e20c030",1195:"85078301",1336:"a7763d65",1355:"28d0965f",1391:"42693d26",1477:"beaa1832",1511:"c59cf9f2",1518:"7e4acf4d",1574:"6fe9c73b",1628:"af41145b",1633:"ca83e151",1713:"4eea03b9",1734:"48f7f8a5",1748:"8feadc1d",1757:"e78c1df1",1772:"d11fac60",1914:"fb6fa8bc",1943:"accaf241",2018:"634c5327",2196:"2676aaef",2267:"2f157a04",2309:"7ba75290",2362:"42c3ebab",2535:"c38747f3",2540:"4793f9f6",2681:"6855b586",2716:"c38fe0a8",2753:"8ed829fe",2840:"b09370d0",2871:"5b1e7f48",3085:"9f3fe42d",3089:"7a509f3d",3188:"40917de9",3205:"c0c3e967",3216:"88eb4771",3394:"71b5824c",3432:"37ca8a84",3514:"310edf08",3608:"8f60ee35",3713:"7964af5d",3724:"dab3a8bd",3980:"4625bb6c",4013:"d743222a",4022:"c58d485c",4118:"bda3bcd3",4141:"7570e8c8",4195:"129f1776",4329:"07773006",4368:"64e5d53d",4488:"ac881e55",4557:"3a38411b",4689:"d6c476a1",4744:"788aaf4b",4905:"5b298e5d",4931:"2cd763d2",4983:"6e7e1660",5182:"6ca40222",5322:"7ad83d1e",5655:"33faca0b",5826:"95977404",5834:"7b35c9d1",5846:"bbaa7d21",5961:"c4386f8a",6103:"618fab3b",6236:"798d71a1",6299:"0194666a",6315:"65aad5b1",6330:"38051eff",6378:"c6c2e3da",6454:"cfe48152",6537:"abb7deee",6578:"bf628f1c",6641:"5061f32a",6876:"ac0b276c",6891:"f9bb505b",6938:"ceaf3ae1",7155:"7cf3aae1",7162:"f89e57dc",7178:"5ea2728c",7414:"c11fb6fe",7485:"3647e6fa",7632:"b97b2546",7720:"e5c4c542",7918:"20238007",8019:"1f43f06c",8157:"7d1f772a",8172:"a29c6c79",8187:"bf6ddd36",8367:"8916b6f2",8461:"407e37a2",8518:"89fe4821",8521:"1be78293",8527:"b43c09a6",8610:"bd442cd2",8636:"9bfb60db",8730:"b9aff477",9003:"65eec07f",9035:"004f5649",9174:"b25a763f",9183:"73d01a29",9246:"41010e1f",9372:"e0f92b83",9377:"ad2dc31c",9498:"feb5b62a",9588:"9510824b",9642:"a3969797",9654:"fec9b4df",9661:"52c8da28",9677:"e1301640",9700:"0e006377"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,f)=>Object.prototype.hasOwnProperty.call(e,f),c={},d="osism:",r.l=(e,f,a,b)=>{if(c[e])c[e].push(f);else{var t,o;if(void 0!==a)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var d=c[e];if(delete c[e],t.parentNode&&t.parentNode.removeChild(t),d&&d.forEach((e=>e(a))),f)return f(a)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={17896441:"7918",59362658:"2267",66406991:"110",90342430:"6378","935f2afb":"53",d0f03c80:"366","30a24c52":"453",b2b675dd:"533","0658869c":"609","3f74a1dc":"770","8717b14a":"948","3a24b32a":"1033",ccc45f31:"1100","7a4fffdf":"1172",e29aad9d:"1195",f3e1e4c4:"1336",d3108c07:"1355","6c11aa3a":"1391",b2f554cd:"1477","6a1f4bec":"1511","5bc03735":"1518",de57d45c:"1574","807e695f":"1628","031793e1":"1633",a7023ddc:"1713","2f914c76":"1734","8e5f32ed":"1748","3934058b":"1757",d9f32620:"1914",ae934d1a:"1943",c45d899e:"2018","0fd4c4b6":"2309",e273c56f:"2362","814f3328":"2535","88884f83":"2540","78b4ae99":"2681","04e17c9d":"2716","2b5b0fc4":"2753","29cf976d":"2840",d03241c9:"2871","1f391b9e":"3085",a6aa9e1f:"3089",e934a396:"3188",a80da1cf:"3205","6fb2b956":"3216","8da03187":"3394",ad26905b:"3432","73664a40":"3514","9e4087bc":"3608","1e80d022":"3713","596b1512":"3724","8352bc95":"3980","01a85c17":"4013","5845507f":"4022","59e4bf9a":"4118",f7ca8893:"4141",c4f5d8e4:"4195",dbbbc829:"4329",a94703ab:"4368",bed2b685:"4488","7d57f1c1":"4557",b4b93543:"4689",b798ea2b:"4744","7c2d5d83":"4905","762b083e":"4931",b614c3e5:"4983","43f3e48b":"5182",c78af355:"5322","08ca43f3":"5655",f7e4724a:"5826","096c7093":"5834","9c2dc5c0":"5846",fb66bc4c:"5961",ccc49370:"6103","02601e42":"6236","07d5b948":"6299","3eec1f83":"6315",dbe528c9:"6330","09ec98ee":"6454",db7ff767:"6537","3e117606":"6578",b68de40d:"6641","07742d97":"6876","0f52743c":"6891","608ae6a4":"6938","74b846e2":"7155",d589d3a7:"7162","096bfee4":"7178","393be207":"7414","49278f49":"7485",b88e2faf:"7632","31da1720":"7720","15cba8f7":"8019",e0698a94:"8157",f4c1e300:"8172","8ff7deab":"8187","09a97616":"8367","0884bdbc":"8461",a7bd4aaa:"8518","4632ab68":"8521","45fcaf07":"8527","6875c492":"8610",f4f34a3a:"8636","42bbc814":"8730","925b3f96":"9003","4c9e35b1":"9035","456706c7":"9174","326f19e1":"9183",c9821a2e:"9246","2c0b3ec5":"9372",fac2b365:"9377",a6659507:"9498","70acb529":"9588","7661071f":"9642","6f6bf91f":"9654","5e95c892":"9661",e16015ca:"9700"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(f,a)=>{var c=r.o(e,f)?e[f]:void 0;if(0!==c)if(c)a.push(c[2]);else if(/^(1303|532)$/.test(f))e[f]=0;else{var d=new Promise(((a,d)=>c=e[f]=[a,d]));a.push(c[2]=d);var b=r.p+r.u(f),t=new Error;r.l(b,(a=>{if(r.o(e,f)&&(0!==(c=e[f])&&(e[f]=void 0),c)){var d=a&&("load"===a.type?"missing":a.type),b=a&&a.target&&a.target.src;t.message="Loading chunk "+f+" failed.\n("+d+": "+b+")",t.name="ChunkLoadError",t.type=d,t.request=b,c[1](t)}}),"chunk-"+f,f)}},r.O.j=f=>0===e[f];var f=(f,a)=>{var c,d,b=a[0],t=a[1],o=a[2],n=0;if(b.some((f=>0!==e[f]))){for(c in t)r.o(t,c)&&(r.m[c]=t[c]);if(o)var i=o(r)}for(f&&f(a);nArchive | OSISM
-
+
diff --git a/blog/first-blog-post/index.html b/blog/first-blog-post/index.html
index badf4339fa..25af8e6ef9 100644
--- a/blog/first-blog-post/index.html
+++ b/blog/first-blog-post/index.html
@@ -5,7 +5,7 @@
First Blog Post | OSISM
-
+
diff --git a/blog/index.html b/blog/index.html
index 1fca2a6a61..341073db6c 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -5,7 +5,7 @@
Blog | OSISM
-
+
diff --git a/blog/long-blog-post/index.html b/blog/long-blog-post/index.html
index b3c1e0b5c0..1fa32a554a 100644
--- a/blog/long-blog-post/index.html
+++ b/blog/long-blog-post/index.html
@@ -5,7 +5,7 @@
Long Blog Post | OSISM
-
+
diff --git a/blog/mdx-blog-post/index.html b/blog/mdx-blog-post/index.html
index 5a9d8fdfce..401af5e5af 100644
--- a/blog/mdx-blog-post/index.html
+++ b/blog/mdx-blog-post/index.html
@@ -5,7 +5,7 @@
MDX Blog Post | OSISM
-
+
diff --git a/blog/tags/docusaurus/index.html b/blog/tags/docusaurus/index.html
index f2bc9b5055..2523a15f77 100644
--- a/blog/tags/docusaurus/index.html
+++ b/blog/tags/docusaurus/index.html
@@ -5,7 +5,7 @@
4 posts tagged with "docusaurus" | OSISM
-
+
diff --git a/blog/tags/facebook/index.html b/blog/tags/facebook/index.html
index 5425d5a733..d0d8ca5b37 100644
--- a/blog/tags/facebook/index.html
+++ b/blog/tags/facebook/index.html
@@ -5,7 +5,7 @@
One post tagged with "facebook" | OSISM
-
+
diff --git a/blog/tags/hello/index.html b/blog/tags/hello/index.html
index fac9964605..e717894b80 100644
--- a/blog/tags/hello/index.html
+++ b/blog/tags/hello/index.html
@@ -5,7 +5,7 @@
2 posts tagged with "hello" | OSISM
-
+
diff --git a/blog/tags/hola/index.html b/blog/tags/hola/index.html
index 71d1a6e940..95cf603b4c 100644
--- a/blog/tags/hola/index.html
+++ b/blog/tags/hola/index.html
@@ -5,7 +5,7 @@
One post tagged with "hola" | OSISM
-
+
diff --git a/blog/tags/index.html b/blog/tags/index.html
index 4508f54224..b083a73b92 100644
--- a/blog/tags/index.html
+++ b/blog/tags/index.html
@@ -5,7 +5,7 @@
Tags | OSISM
-
+
diff --git a/blog/welcome/index.html b/blog/welcome/index.html
index 3c110bccbb..73524db5e4 100644
--- a/blog/welcome/index.html
+++ b/blog/welcome/index.html
@@ -5,7 +5,7 @@
Welcome | OSISM
-
+
diff --git a/docs/appendix/glossary/index.html b/docs/appendix/glossary/index.html
index 02278a254a..7f925929b5 100644
--- a/docs/appendix/glossary/index.html
+++ b/docs/appendix/glossary/index.html
@@ -5,7 +5,7 @@
Glossary | OSISM
-
+
diff --git a/docs/appendix/index.html b/docs/appendix/index.html
index b8f417287f..28f5be9a9e 100644
--- a/docs/appendix/index.html
+++ b/docs/appendix/index.html
@@ -5,7 +5,7 @@
Appendix | OSISM
-
+
diff --git a/docs/appendix/standards/index.html b/docs/appendix/standards/index.html
index 7c86b8b272..3d8fc878b5 100644
--- a/docs/appendix/standards/index.html
+++ b/docs/appendix/standards/index.html
@@ -5,7 +5,7 @@
Standards | OSISM
-
+
diff --git a/docs/getting-started/index.html b/docs/getting-started/index.html
index 71b934c007..1671804447 100644
--- a/docs/getting-started/index.html
+++ b/docs/getting-started/index.html
@@ -5,7 +5,7 @@
Getting Started | OSISM
-
+
diff --git a/docs/guides/configuration-guide/ceph/index.html b/docs/guides/configuration-guide/ceph/index.html
index a936c8875b..a009710958 100644
--- a/docs/guides/configuration-guide/ceph/index.html
+++ b/docs/guides/configuration-guide/ceph/index.html
@@ -5,7 +5,7 @@
Ceph | OSISM
-
+
diff --git a/docs/guides/configuration-guide/commons/index.html b/docs/guides/configuration-guide/commons/index.html
index 7252782c4e..6e46d4d865 100644
--- a/docs/guides/configuration-guide/commons/index.html
+++ b/docs/guides/configuration-guide/commons/index.html
@@ -5,7 +5,7 @@
Commons | OSISM
-
+
diff --git a/docs/guides/configuration-guide/commons/network/index.html b/docs/guides/configuration-guide/commons/network/index.html
index 8284217326..c452e10fce 100644
--- a/docs/guides/configuration-guide/commons/network/index.html
+++ b/docs/guides/configuration-guide/commons/network/index.html
@@ -5,7 +5,7 @@
Network | OSISM
-
+
diff --git a/docs/guides/configuration-guide/commons/packages/index.html b/docs/guides/configuration-guide/commons/packages/index.html
index 5046c0c6e9..2550ab2ad8 100644
--- a/docs/guides/configuration-guide/commons/packages/index.html
+++ b/docs/guides/configuration-guide/commons/packages/index.html
@@ -5,7 +5,7 @@
Packages | OSISM
-
+
diff --git a/docs/guides/configuration-guide/commons/services/index.html b/docs/guides/configuration-guide/commons/services/index.html
index 4b28be9c23..d11e6f4ad5 100644
--- a/docs/guides/configuration-guide/commons/services/index.html
+++ b/docs/guides/configuration-guide/commons/services/index.html
@@ -5,7 +5,7 @@
Services | OSISM
-
+
diff --git a/docs/guides/configuration-guide/commons/sshconfig/index.html b/docs/guides/configuration-guide/commons/sshconfig/index.html
index 9e9c5d9e1a..ec1ad313ae 100644
--- a/docs/guides/configuration-guide/commons/sshconfig/index.html
+++ b/docs/guides/configuration-guide/commons/sshconfig/index.html
@@ -5,7 +5,7 @@
SSH Config | OSISM
-
+
diff --git a/docs/guides/configuration-guide/commons/sysctl/index.html b/docs/guides/configuration-guide/commons/sysctl/index.html
index a0b4b3ac57..9bfb6bc4bb 100644
--- a/docs/guides/configuration-guide/commons/sysctl/index.html
+++ b/docs/guides/configuration-guide/commons/sysctl/index.html
@@ -5,7 +5,7 @@
Sysctl | OSISM
-
+
diff --git a/docs/guides/configuration-guide/commons/timezone/index.html b/docs/guides/configuration-guide/commons/timezone/index.html
index aa6cd356cb..e4727bd9aa 100644
--- a/docs/guides/configuration-guide/commons/timezone/index.html
+++ b/docs/guides/configuration-guide/commons/timezone/index.html
@@ -5,7 +5,7 @@
Timezone | OSISM
-
+
diff --git a/docs/guides/configuration-guide/configuration-repository/index.html b/docs/guides/configuration-guide/configuration-repository/index.html
index de4fc8cb08..cc61d13e2d 100644
--- a/docs/guides/configuration-guide/configuration-repository/index.html
+++ b/docs/guides/configuration-guide/configuration-repository/index.html
@@ -5,7 +5,7 @@
Configuration Repository | OSISM
-
+
diff --git a/docs/guides/configuration-guide/index.html b/docs/guides/configuration-guide/index.html
index c7a410ec05..84c51795d4 100644
--- a/docs/guides/configuration-guide/index.html
+++ b/docs/guides/configuration-guide/index.html
@@ -5,7 +5,7 @@
Configuration Guide | OSISM
-
+
diff --git a/docs/guides/configuration-guide/inventory/index.html b/docs/guides/configuration-guide/inventory/index.html
index cbb66d5b38..e754d3dea8 100644
--- a/docs/guides/configuration-guide/inventory/index.html
+++ b/docs/guides/configuration-guide/inventory/index.html
@@ -5,7 +5,7 @@
Inventory | OSISM
-
+
diff --git a/docs/guides/configuration-guide/manager/index.html b/docs/guides/configuration-guide/manager/index.html
index 9900cc72e6..0b0f3e4902 100644
--- a/docs/guides/configuration-guide/manager/index.html
+++ b/docs/guides/configuration-guide/manager/index.html
@@ -5,7 +5,7 @@
Manager | OSISM
-
+
diff --git a/docs/guides/configuration-guide/openstack/horizon/index.html b/docs/guides/configuration-guide/openstack/horizon/index.html
index 7e3b9b7504..19a49dd9e3 100644
--- a/docs/guides/configuration-guide/openstack/horizon/index.html
+++ b/docs/guides/configuration-guide/openstack/horizon/index.html
@@ -5,7 +5,7 @@
Horizon | OSISM
-
+
diff --git a/docs/guides/configuration-guide/openstack/index.html b/docs/guides/configuration-guide/openstack/index.html
index c819713dd8..6e66470b0b 100644
--- a/docs/guides/configuration-guide/openstack/index.html
+++ b/docs/guides/configuration-guide/openstack/index.html
@@ -5,7 +5,7 @@
OpenStack | OSISM
-
+
diff --git a/docs/guides/configuration-guide/openstack/keystone/index.html b/docs/guides/configuration-guide/openstack/keystone/index.html
index 914421b07f..00c4214620 100644
--- a/docs/guides/configuration-guide/openstack/keystone/index.html
+++ b/docs/guides/configuration-guide/openstack/keystone/index.html
@@ -5,7 +5,7 @@
Keystone | OSISM
-
+
diff --git a/docs/guides/configuration-guide/proxy/index.html b/docs/guides/configuration-guide/proxy/index.html
index 143fe4b238..d86dc6cf6e 100644
--- a/docs/guides/configuration-guide/proxy/index.html
+++ b/docs/guides/configuration-guide/proxy/index.html
@@ -5,7 +5,7 @@
Proxy | OSISM
-
+
diff --git a/docs/guides/configuration-guide/self-signed-certificates/index.html b/docs/guides/configuration-guide/self-signed-certificates/index.html
index 5551a316d2..2148b06e97 100644
--- a/docs/guides/configuration-guide/self-signed-certificates/index.html
+++ b/docs/guides/configuration-guide/self-signed-certificates/index.html
@@ -5,7 +5,7 @@
Self-signed certificates | OSISM
-
+
diff --git a/docs/guides/configuration-guide/services/index.html b/docs/guides/configuration-guide/services/index.html
index 149fc1942c..2b0f811127 100644
--- a/docs/guides/configuration-guide/services/index.html
+++ b/docs/guides/configuration-guide/services/index.html
@@ -5,7 +5,7 @@
Services | OSISM
-
+
diff --git a/docs/guides/deploy-guide/bootstrap/index.html b/docs/guides/deploy-guide/bootstrap/index.html
index 90349482e8..dd84a20f23 100644
--- a/docs/guides/deploy-guide/bootstrap/index.html
+++ b/docs/guides/deploy-guide/bootstrap/index.html
@@ -5,7 +5,7 @@
Bootstrap | OSISM
-
+
diff --git a/docs/guides/deploy-guide/examples/cloud-in-a-box/index.html b/docs/guides/deploy-guide/examples/cloud-in-a-box/index.html
index 727da480c0..8f5e7959e2 100644
--- a/docs/guides/deploy-guide/examples/cloud-in-a-box/index.html
+++ b/docs/guides/deploy-guide/examples/cloud-in-a-box/index.html
@@ -5,7 +5,7 @@
Cloud in a Box - CiaB | OSISM
-
+
diff --git a/docs/guides/deploy-guide/examples/index.html b/docs/guides/deploy-guide/examples/index.html
index e75ffbc482..9cafb6e0a6 100644
--- a/docs/guides/deploy-guide/examples/index.html
+++ b/docs/guides/deploy-guide/examples/index.html
@@ -5,7 +5,7 @@
Examples | OSISM
-
+
diff --git a/docs/guides/deploy-guide/examples/testbed/index.html b/docs/guides/deploy-guide/examples/testbed/index.html
index 89cdc27dc5..14724d99ba 100644
--- a/docs/guides/deploy-guide/examples/testbed/index.html
+++ b/docs/guides/deploy-guide/examples/testbed/index.html
@@ -5,7 +5,7 @@
Testbed | OSISM
-
+
diff --git a/docs/guides/deploy-guide/index.html b/docs/guides/deploy-guide/index.html
index 4f147bcc5e..26028fe1a5 100644
--- a/docs/guides/deploy-guide/index.html
+++ b/docs/guides/deploy-guide/index.html
@@ -5,7 +5,7 @@
Deploy Guide | OSISM
-
+
diff --git a/docs/guides/deploy-guide/manager/index.html b/docs/guides/deploy-guide/manager/index.html
index 74285f8ede..605102b61f 100644
--- a/docs/guides/deploy-guide/manager/index.html
+++ b/docs/guides/deploy-guide/manager/index.html
@@ -5,7 +5,7 @@
Manager | OSISM
-
+
diff --git a/docs/guides/deploy-guide/provisioning/index.html b/docs/guides/deploy-guide/provisioning/index.html
index 4cd00ff386..d9ea38a939 100644
--- a/docs/guides/deploy-guide/provisioning/index.html
+++ b/docs/guides/deploy-guide/provisioning/index.html
@@ -5,7 +5,7 @@
Provisioning of management and control plane nodes | OSISM
-
+
diff --git a/docs/guides/deploy-guide/seed/index.html b/docs/guides/deploy-guide/seed/index.html
index 3b9366e594..3ed550c8d9 100644
--- a/docs/guides/deploy-guide/seed/index.html
+++ b/docs/guides/deploy-guide/seed/index.html
@@ -5,7 +5,7 @@
Seed | OSISM
-
+
diff --git a/docs/guides/deploy-guide/services/ceph/index.html b/docs/guides/deploy-guide/services/ceph/index.html
index c71d87f069..8122abc0da 100644
--- a/docs/guides/deploy-guide/services/ceph/index.html
+++ b/docs/guides/deploy-guide/services/ceph/index.html
@@ -5,7 +5,7 @@
Ceph | OSISM
-
+
diff --git a/docs/guides/deploy-guide/services/index.html b/docs/guides/deploy-guide/services/index.html
index c92fb08f90..fed4f4b99d 100644
--- a/docs/guides/deploy-guide/services/index.html
+++ b/docs/guides/deploy-guide/services/index.html
@@ -5,7 +5,7 @@
Services | OSISM
-
+
diff --git a/docs/guides/deploy-guide/services/infrastructure/index.html b/docs/guides/deploy-guide/services/infrastructure/index.html
index 7e6e07fa0c..fd4b390862 100644
--- a/docs/guides/deploy-guide/services/infrastructure/index.html
+++ b/docs/guides/deploy-guide/services/infrastructure/index.html
@@ -5,7 +5,7 @@
Infrastructure | OSISM
-
+
diff --git a/docs/guides/deploy-guide/services/logging-monitoring/index.html b/docs/guides/deploy-guide/services/logging-monitoring/index.html
index 1ffd0e2773..e8c4be8d01 100644
--- a/docs/guides/deploy-guide/services/logging-monitoring/index.html
+++ b/docs/guides/deploy-guide/services/logging-monitoring/index.html
@@ -5,7 +5,7 @@
Logging & Monitoring | OSISM
-
+
diff --git a/docs/guides/deploy-guide/services/network/index.html b/docs/guides/deploy-guide/services/network/index.html
index ff0080f4f8..b16e414139 100644
--- a/docs/guides/deploy-guide/services/network/index.html
+++ b/docs/guides/deploy-guide/services/network/index.html
@@ -5,7 +5,7 @@
Network | OSISM
-
+
diff --git a/docs/guides/deploy-guide/services/openstack/index.html b/docs/guides/deploy-guide/services/openstack/index.html
index 81d9d09fd6..627372db0c 100644
--- a/docs/guides/deploy-guide/services/openstack/index.html
+++ b/docs/guides/deploy-guide/services/openstack/index.html
@@ -5,7 +5,7 @@
OpenStack | OSISM
-
+
diff --git a/docs/guides/index.html b/docs/guides/index.html
index a36c05eed3..efb0cda3ae 100644
--- a/docs/guides/index.html
+++ b/docs/guides/index.html
@@ -5,7 +5,7 @@
Guides | OSISM
-
+
diff --git a/docs/guides/operations-guide/ceph/index.html b/docs/guides/operations-guide/ceph/index.html
index 8294650a9c..5f27c65a62 100644
--- a/docs/guides/operations-guide/ceph/index.html
+++ b/docs/guides/operations-guide/ceph/index.html
@@ -5,7 +5,7 @@
Ceph operations cheatsheet | OSISM
-
+
@@ -124,8 +124,8 @@