\documentclass[10pt,a4paper]{article} % Packages \usepackage{fancyhdr} % For header and footer \usepackage{multicol} % Allows multicols in tables \usepackage{tabularx} % Intelligent column widths \usepackage{tabulary} % Used in header and footer \usepackage{hhline} % Border under tables \usepackage{graphicx} % For images \usepackage{xcolor} % For hex colours %\usepackage[utf8x]{inputenc} % For unicode character support \usepackage[T1]{fontenc} % Without this we get weird character replacements \usepackage{colortbl} % For coloured tables \usepackage{setspace} % For line height \usepackage{lastpage} % Needed for total page number \usepackage{seqsplit} % Splits long words. %\usepackage{opensans} % Can't make this work so far. Shame. Would be lovely. \usepackage[normalem]{ulem} % For underlining links % Most of the following are not required for the majority % of cheat sheets but are needed for some symbol support. \usepackage{amsmath} % Symbols \usepackage{MnSymbol} % Symbols \usepackage{wasysym} % Symbols %\usepackage[english,german,french,spanish,italian]{babel} % Languages % Document Info \author{Eagle1992 (Eagle1992)} \pdfinfo{ /Title (ceph.pdf) /Creator (Cheatography) /Author (Eagle1992 (Eagle1992)) /Subject (Ceph Cheat Sheet) } % Lengths and widths \addtolength{\textwidth}{6cm} \addtolength{\textheight}{-1cm} \addtolength{\hoffset}{-3cm} \addtolength{\voffset}{-2cm} \setlength{\tabcolsep}{0.2cm} % Space between columns \setlength{\headsep}{-12pt} % Reduce space between header and content \setlength{\headheight}{85pt} % If less, LaTeX automatically increases it \renewcommand{\footrulewidth}{0pt} % Remove footer line \renewcommand{\headrulewidth}{0pt} % Remove header line \renewcommand{\seqinsert}{\ifmmode\allowbreak\else\-\fi} % Hyphens in seqsplit % This two commands together give roughly % the right line height in the tables \renewcommand{\arraystretch}{1.3} \onehalfspacing % Commands \newcommand{\SetRowColor}[1]{\noalign{\gdef\RowColorName{#1}}\rowcolor{\RowColorName}} % Shortcut for row colour \newcommand{\mymulticolumn}[3]{\multicolumn{#1}{>{\columncolor{\RowColorName}}#2}{#3}} % For coloured multi-cols \newcolumntype{x}[1]{>{\raggedright}p{#1}} % New column types for ragged-right paragraph columns \newcommand{\tn}{\tabularnewline} % Required as custom column type in use % Font and Colours \definecolor{HeadBackground}{HTML}{333333} \definecolor{FootBackground}{HTML}{666666} \definecolor{TextColor}{HTML}{333333} \definecolor{DarkBackground}{HTML}{037EA3} \definecolor{LightBackground}{HTML}{EFF6F9} \renewcommand{\familydefault}{\sfdefault} \color{TextColor} % Header and Footer \pagestyle{fancy} \fancyhead{} % Set header to blank \fancyfoot{} % Set footer to blank \fancyhead[L]{ \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{C} \SetRowColor{DarkBackground} \vspace{-7pt} {\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\noindent \hspace*{-6pt}\includegraphics[width=5.8cm]{/web/www.cheatography.com/public/images/cheatography_logo.pdf}} } \end{tabulary} \columnbreak \begin{tabulary}{11cm}{L} \vspace{-2pt}\large{\bf{\textcolor{DarkBackground}{\textrm{Ceph Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{Eagle1992 (Eagle1992)} via \textcolor{DarkBackground}{\uline{cheatography.com/195419/cs/40944/}}} \end{tabulary} \end{multicols}} \fancyfoot[L]{ \footnotesize \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{LL} \SetRowColor{FootBackground} \mymulticolumn{2}{p{5.377cm}}{\bf\textcolor{white}{Cheatographer}} \\ \vspace{-2pt}Eagle1992 (Eagle1992) \\ \uline{cheatography.com/eagle1992} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Published 23rd October, 2023.\\ Updated 23rd October, 2023.\\ Page {\thepage} of \pageref{LastPage}. \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Sponsor}} \\ \SetRowColor{white} \vspace{-5pt} %\includegraphics[width=48px,height=48px]{dave.jpeg} Measure your website readability!\\ www.readability-score.com \end{tabulary} \end{multicols}} \begin{document} \raggedright \raggedcolumns % Set font size to small. Switch to any value % from this page to resize cheat sheet text: % www.emerson.emory.edu/services/latex/latex_169.html \footnotesize % Small font. \begin{multicols*}{3} \begin{tabularx}{5.377cm}{x{2.4885 cm} x{2.4885 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{ceph config}} \tn % Row 0 \SetRowColor{LightBackground} ceph config dump & Dumps entire monitor configuration database \tn % Row Count 3 (+ 3) % Row 1 \SetRowColor{white} ceph config get \{who\} \{option\} & Dumps the configuration option stored in monitor configuration database for specific daemon or client(for example osd.0). Options k{\"o}nnen angegeben werden. \tn % Row Count 11 (+ 8) % Row 2 \SetRowColor{LightBackground} ceph config set \{who\} \{option\} \{value\} & specifies a configuration option in the monitor configuration database (for example ceph config set osd.0 debug\_ms 20) \tn % Row Count 17 (+ 6) % Row 3 \SetRowColor{white} ceph config show \{who\} & shows runtime settings for a running daemon (to see all settings use: ceph config show-with-defaults) \tn % Row Count 23 (+ 6) % Row 4 \SetRowColor{LightBackground} ceph config assimilate-conf -i \{input\_file\} -o \{output\_file\} & ingests a configuration file from inpute file and moves any valid options into the monitor configuration database \tn % Row Count 29 (+ 6) % Row 5 \SetRowColor{white} ceph config help \{option\} (-f json-pretty) & to get help for particular option (not optional). \tn % Row Count 32 (+ 3) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.4885 cm} x{2.4885 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{ceph config (cont)}} \tn % Row 6 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{} \tn % Row Count 0 (+ 0) % Row 7 \SetRowColor{white} ceph tell \{who\} config set \{option\} \{value\} & set temporarily other settings (for example ceph tell osd.123 config set debug\_osd 20) You can also specify wildcards: osd.* (to change settings for all OSDs.) \tn % Row Count 8 (+ 8) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{ceph is part of Ceph, a massively scalable, open-source, distributed storage system. Please refer to the Ceph documentation at https://docs.ceph.com for more information.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{2.4885 cm} x{2.4885 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Options}} \tn % Row 0 \SetRowColor{LightBackground} -i infile & will specify an input file to be passed along as a payload with the command to the monitor cluster. This is only used for specific monitor commands. \tn % Row Count 8 (+ 8) % Row 1 \SetRowColor{white} -o outfile & will write any payload returned by the monitor cluster with its reply to outfile. Only specific monitor commands (e.g. osd getmap) return a payload. \tn % Row Count 16 (+ 8) % Row 2 \SetRowColor{LightBackground} -{}-setuser user & will apply the appropriate user ownership to the file specified by the option '-o'. \tn % Row Count 21 (+ 5) % Row 3 \SetRowColor{white} -{}-setgroup group & will apply the appropriate group ownership to the file specified by the option '-o'. \tn % Row Count 26 (+ 5) % Row 4 \SetRowColor{LightBackground} -c ceph.conf, -{}-conf=ceph.conf & Use ceph.conf configuration file instead of the default /etc/ceph/ceph.conf to determine monitor addresses during startup. \tn % Row Count 33 (+ 7) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.4885 cm} x{2.4885 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Options (cont)}} \tn % Row 5 \SetRowColor{LightBackground} -{}-id CLIENT\_ID, -{}-user CLIENT\_ID & Client id for authentication. \tn % Row Count 2 (+ 2) % Row 6 \SetRowColor{white} -{}-name CLIENT\_NAME, -n CLIENT\_NAME & Client name for authentication. \tn % Row Count 4 (+ 2) % Row 7 \SetRowColor{LightBackground} -{}-cluster CLUSTER & Name of the Ceph cluster. \tn % Row Count 6 (+ 2) % Row 8 \SetRowColor{white} -{}-admin-daemon ADMIN\_SOCKET, daemon DAEMON\_NAME & Submit admin-socket commands via admin sockets in /var/run/ceph. \tn % Row Count 10 (+ 4) % Row 9 \SetRowColor{LightBackground} -s, -{}-status & Show cluster status. \tn % Row Count 11 (+ 1) % Row 10 \SetRowColor{white} -w, -{}-watch & Watch live cluster changes on the default 'cluster' channel \tn % Row Count 15 (+ 4) % Row 11 \SetRowColor{LightBackground} -W, -{}-watch-channel & Watch live cluster changes on any channel (cluster, audit, cephadm, or * for all) \tn % Row Count 20 (+ 5) % Row 12 \SetRowColor{white} -{}-watch-debug & Watch debug events. \tn % Row Count 21 (+ 1) % Row 13 \SetRowColor{LightBackground} -{}-watch-info & Watch info events. \tn % Row Count 22 (+ 1) % Row 14 \SetRowColor{white} -{}-watch-sec & Watch security events. \tn % Row Count 24 (+ 2) % Row 15 \SetRowColor{LightBackground} -{}-watch-warn & Watch warning events. \tn % Row Count 26 (+ 2) % Row 16 \SetRowColor{white} -{}-watch-error & Watch error events. \tn % Row Count 27 (+ 1) % Row 17 \SetRowColor{LightBackground} -{}-version, -v & Display version. \tn % Row Count 28 (+ 1) % Row 18 \SetRowColor{white} -{}-verbose & Make verbose. \tn % Row Count 29 (+ 1) % Row 19 \SetRowColor{LightBackground} -{}-concise & Make less verbose. \tn % Row Count 30 (+ 1) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.4885 cm} x{2.4885 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Options (cont)}} \tn % Row 20 \SetRowColor{LightBackground} -f \{json,json-pretty,xml,xml-pretty,plain,yaml\}, -{}-format & Format of output. Note: yaml is only valid for orch commands. \tn % Row Count 4 (+ 4) % Row 21 \SetRowColor{white} -{}-connect-timeout CLUSTER\_TIMEOUT & Set a timeout for connecting to the cluster. \tn % Row Count 7 (+ 3) % Row 22 \SetRowColor{LightBackground} -{}-no-increasing & -{}-no-increasing is off by default. So increasing the osd weight is allowed using the \seqsplit{reweight-by-utilization} or \seqsplit{test-reweight-by-utilization} commands. If this option is used with these commands, it will help not to increase osd weight even the osd is under utilized. \tn % Row Count 21 (+ 14) % Row 23 \SetRowColor{white} -{}-block & block until completion (scrub and deep-scrub only) \tn % Row Count 24 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{2.33919 cm} x{2.63781 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{ceph mon}} \tn % Row 0 \SetRowColor{LightBackground} ceph mon dump \{int0-\} & dumps formatted monmap - if integer is given, then you'll get mon-map from epoch \{integer{]} \tn % Row Count 5 (+ 5) % Row 1 \SetRowColor{white} ceph mon add \{name\} \{IPaddr{[}:port{]}\} & adds new monitor named \{name\} at \{addr\} \tn % Row Count 7 (+ 2) % Row 2 \SetRowColor{LightBackground} ceph mon getmap \{int0-\} & gets monmap (from specified epoch) \tn % Row Count 9 (+ 2) % Row 3 \SetRowColor{white} ceph mon remove \{name\} & removes monitor named \{name\} \tn % Row Count 11 (+ 2) % Row 4 \SetRowColor{LightBackground} ceph mon stat & summarizes monitor status \tn % Row Count 13 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{2.18988 cm} x{2.78712 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{ceph mgr}} \tn % Row 0 \SetRowColor{LightBackground} ceph mgr dump & dumps latest MgrMap, which describes the active \& standby manager daemons \tn % Row Count 4 (+ 4) % Row 1 \SetRowColor{white} ceph mgr fail \{name\} & will mark a manager daemon as failed, removing it from managerr map \tn % Row Count 8 (+ 4) % Row 2 \SetRowColor{LightBackground} ceph mgr module ls & will list currently enableld manager modules (plugins) \tn % Row Count 11 (+ 3) % Row 3 \SetRowColor{white} ceph mgr module enable \{module\} & will enable a manager modules. available modules are included in MgrMap and visible via mgr dump \tn % Row Count 16 (+ 5) % Row 4 \SetRowColor{LightBackground} ceph mgr module disable \{module\} & will disable an active manager module \tn % Row Count 18 (+ 2) % Row 5 \SetRowColor{white} ceph mgr metadata \{name\} & will report metadata about all manager daemons or if the name is specified a single manager daemon \tn % Row Count 23 (+ 5) % Row 6 \SetRowColor{LightBackground} ceph mgr versions & will report a count of running daemon versions \tn % Row Count 26 (+ 3) % Row 7 \SetRowColor{white} ceph mgr count-metadata \{field\} & will report a count of any daemon metadata field \tn % Row Count 29 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{2.4885 cm} x{2.4885 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Miscellaneous}} \tn % Row 0 \SetRowColor{LightBackground} ceph tell mon.\textless{}id\textgreater{} quorum enter|exit & Cause a specific MON to enter or exit quorum. \tn % Row Count 3 (+ 3) % Row 1 \SetRowColor{white} ceph quorum\_status & Reports status of monitor quorum. \tn % Row Count 5 (+ 2) % Row 2 \SetRowColor{LightBackground} ceph report \{\textless{}tags\textgreater{} {[}\textless{}tags\textgreater{}...{]}\} & Reports full status of cluster, optional title tag strings. \tn % Row Count 8 (+ 3) % Row 3 \SetRowColor{white} ceph status & Shows cluster status. \tn % Row Count 10 (+ 2) % Row 4 \SetRowColor{LightBackground} ceph tell \textless{}name (type.id)\textgreater{} \textless{}command\textgreater{} {[}options...{]} & Sends a command to a specific daemon. \tn % Row Count 13 (+ 3) % Row 5 \SetRowColor{white} ceph tell \textless{}name (type.id)\textgreater{} help & List all available commands. \tn % Row Count 15 (+ 2) % Row 6 \SetRowColor{LightBackground} ceph version & Show mon daemon version \tn % Row Count 17 (+ 2) % Row 7 \SetRowColor{white} ceph fs dump & get MDS Map \tn % Row Count 18 (+ 1) % Row 8 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{} \tn % Row Count 18 (+ 0) % Row 9 \SetRowColor{white} ceph balancer status & get status of ceph balancer \tn % Row Count 20 (+ 2) % Row 10 \SetRowColor{LightBackground} ceph balancer off / on & enable / disable ceph balancer \tn % Row Count 22 (+ 2) % Row 11 \SetRowColor{white} ceph balancer mode crush-compat or upmap & set balancer mode to crush-compat or upmap (default) \tn % Row Count 25 (+ 3) % Row 12 \SetRowColor{LightBackground} ceph -s / -{}-status & see actual ceph status \tn % Row Count 27 (+ 2) % Row 13 \SetRowColor{white} ceph df detail & shows data usage in raw storage and pools \tn % Row Count 30 (+ 3) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.4885 cm} x{2.4885 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Miscellaneous (cont)}} \tn % Row 14 \SetRowColor{LightBackground} ceph-volume lvm list or ceph device ls & shows all disks \tn % Row Count 2 (+ 2) % Row 15 \SetRowColor{white} ceph crash ls / ls-new & shows all mgr module crash dumps (or only list new crash dumps with ls-new) \tn % Row Count 6 (+ 4) % Row 16 \SetRowColor{LightBackground} ceph crash info \{crashid\} & shows exact information for crashdump with specific crashid \tn % Row Count 9 (+ 3) % Row 17 \SetRowColor{white} ceph crash archive-all & archive all crash dumps \tn % Row Count 11 (+ 2) % Row 18 \SetRowColor{LightBackground} ceph crash rm \{crashid\} & removes crash dump with specific id \tn % Row Count 13 (+ 2) % Row 19 \SetRowColor{white} ceph crash stat & List the timestamp/uuid crashids for all newcrash info. \tn % Row Count 16 (+ 3) % Row 20 \SetRowColor{LightBackground} ceph crash prune \{keep\} & Remove saved crashes older than 'keep' days. \{keep\} must be an integer. \tn % Row Count 20 (+ 4) % Row 21 \SetRowColor{white} ceph crash archive \{crashid\} & Archive a crash report so that it is no longer considered for the RECENT\_CRASH health check and does not appear in the crash ls-new output (it will still appear in the crash ls output). \tn % Row Count 30 (+ 10) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.4885 cm} x{2.4885 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Miscellaneous (cont)}} \tn % Row 22 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{} \tn % Row Count 0 (+ 0) % Row 23 \SetRowColor{white} crushtool -d \{compiled-crusmap-file\} -o \{output\_decomp-crushmap-file\} & decompile crushmap (ceph osd getcrushmap -o \{file\}) to readable format. Now you can open it with every common texteditor (vim, nano, vi) or read with cat / less \tn % Row Count 8 (+ 8) % Row 24 \SetRowColor{LightBackground} crushtool -c \{modified-crushmap-filename\} -o \{modified-compiled-crushmap-file\} & recompile crushmap after modifying to output file (-o) \tn % Row Count 12 (+ 4) % Row 25 \SetRowColor{white} ceph osd setcrushmap -i \{modified-compiled-crushmap-file\} & set new crushmap from file \tn % Row Count 15 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{2.4885 cm} x{2.4885 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{ceph pg}} \tn % Row 0 \SetRowColor{LightBackground} ceph pg debug \seqsplit{unfound\_objects\_exist|degraded\_pgs\_exist} & shows debug info about pgs. \tn % Row Count 3 (+ 3) % Row 1 \SetRowColor{white} ceph pg deep-scrub \textless{}pgid\textgreater{} & starts deep-scrub on \textless{}pgid\textgreater{}. \tn % Row Count 5 (+ 2) % Row 2 \SetRowColor{LightBackground} ceph pg dump \{all|summary|sum|delta|pools|osds|pgs|pgs\_brief\} {[}\{all|summary|sum|delta|pools|osds|pgs|pgs\_brief...{]}\} & shows human-readable versions of pg map (only 'all' valid with plain). \tn % Row Count 11 (+ 6) % Row 3 \SetRowColor{white} ceph pg dump\_json \{all|summary|sum|delta|pools|osds|pgs|pgs\_brief\} {[}\{all|summary|sum|delta|pools|osds|pgs|pgs\_brief...{]}\} & shows human-readable version of pg map in json only. \tn % Row Count 17 (+ 6) % Row 4 \SetRowColor{LightBackground} ceph pg dump\_pools\_json & shows pg pools info in json only. \tn % Row Count 19 (+ 2) % Row 5 \SetRowColor{white} ceph pg dump\_stuck \{inactive|unclean|stale|undersized|degraded {[}inactive|unclean|stale|undersized|degraded...{]}\} \{\textless{}int\textgreater{}\} & shows information about stuck pgs. \tn % Row Count 25 (+ 6) % Row 6 \SetRowColor{LightBackground} ceph pg getmap & gets binary pg map to -o/stdout. \tn % Row Count 27 (+ 2) % Row 7 \SetRowColor{white} ceph pg ls \{\textless{}int\textgreater{}\} \{\textless{}pg-state\textgreater{} {[}\textless{}pg-state\textgreater{}...{]}\} & lists pg with specific pool, osd, state \tn % Row Count 30 (+ 3) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.4885 cm} x{2.4885 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{ceph pg (cont)}} \tn % Row 8 \SetRowColor{LightBackground} ceph pg ls-by-osd \textless{}osdname (id|osd.id)\textgreater{} \{\textless{}int\textgreater{}\} \{\textless{}pg-state\textgreater{} {[}\textless{}pg-state\textgreater{}...{]}\} & lists pg on osd {[}osd{]} \tn % Row Count 4 (+ 4) % Row 9 \SetRowColor{white} ceph pg ls-by-pool \textless{}poolstr\textgreater{} \{\textless{}int\textgreater{}\} \{\textless{}pg-state\textgreater{} {[}\textless{}pg-state\textgreater{}...{]}\} & lists pg with pool = {[}poolname{]} \tn % Row Count 8 (+ 4) % Row 10 \SetRowColor{LightBackground} ceph pg ls-by-primary \textless{}osdname (id|osd.id)\textgreater{} \{\textless{}int\textgreater{}\} \{\textless{}pg-state\textgreater{} {[}\textless{}pg-state\textgreater{}...{]}\} & lists pg with primary = {[}osd{]} \tn % Row Count 12 (+ 4) % Row 11 \SetRowColor{white} ceph pg map \textless{}pgid\textgreater{} & shows mapping of pg to osds. \tn % Row Count 14 (+ 2) % Row 12 \SetRowColor{LightBackground} ceph pg repair \textless{}pgid\textgreater{} & starts repair on \textless{}pgid\textgreater{}. \tn % Row Count 16 (+ 2) % Row 13 \SetRowColor{white} ceph pg scrub \textless{}pgid\textgreater{} & starts scrub on \textless{}pgid\textgreater{}. \tn % Row Count 18 (+ 2) % Row 14 \SetRowColor{LightBackground} ceph pg stat & shows placement group status. \tn % Row Count 20 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\seqsplit{https://docs.ceph.com/en/quincy/rados/operations/pg-states/} \newline https://docs.ceph.com/en/latest/rados/troubleshooting/troubleshooting-pg/} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{2.4885 cm} x{2.4885 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{ceph osd}} \tn % Row 0 \SetRowColor{LightBackground} ceph osd blocklist add \{EntityAddr\} \{\textless{}float{[}0.0-{]}\textgreater{}\} & add \{addr{]} to blocklist \tn % Row Count 3 (+ 3) % Row 1 \SetRowColor{white} ceph osd blocklist ls & show blocklisted clients \tn % Row Count 5 (+ 2) % Row 2 \SetRowColor{LightBackground} ceph osd blocklist rm \{EntityAddr\} & remove \{addr{]} from blocklist \tn % Row Count 7 (+ 2) % Row 3 \SetRowColor{white} ceph osd blocked-by & prints a histogram of which OSDs are blocking their peers \tn % Row Count 10 (+ 3) % Row 4 \SetRowColor{LightBackground} ceph osd new \{\textless{}uuid\textgreater{}\} \{\textless{}id\textgreater{}\} -i \{\textless{}params.json\textgreater{}\} & To create a new OSD or recreate a previously destroyed OSD with specific id. Please look up Documentation if you're planning to use this command. \tn % Row Count 18 (+ 8) % Row 5 \SetRowColor{white} ceph osd crush add \textless{}osdname (id|osd.id)\textgreater{} \textless{}float{[}0.0-{]}\textgreater{} \textless{}args\textgreater{} {[}\textless{}args\textgreater{}...{]} & adds or updates crushmap position and weight for \textless{}name\textgreater{} with \textless{}weight\textgreater{} and location \textless{}args\textgreater{}. \tn % Row Count 23 (+ 5) % Row 6 \SetRowColor{LightBackground} ceph osd crush add-bucket \textless{}name\textgreater{} \textless{}type\textgreater{} & dds no-parent (probably root) crush bucket \textless{}name\textgreater{} of type \textless{}type\textgreater{}. \tn % Row Count 27 (+ 4) % Row 7 \SetRowColor{white} ceph osd crush create-or-move \textless{}osdname (id|osd.id)\textgreater{} \textless{}float{[}0.0-{]}\textgreater{} \textless{}args\textgreater{} {[}\textless{}args\textgreater{}...{]} & creates entry or moves existing entry for \textless{}name\textgreater{} \textless{}weight\textgreater{} at/to location \textless{}args\textgreater{}. \tn % Row Count 32 (+ 5) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.4885 cm} x{2.4885 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{ceph osd (cont)}} \tn % Row 8 \SetRowColor{LightBackground} ceph osd crush dump & dumps crush map. \tn % Row Count 1 (+ 1) % Row 9 \SetRowColor{white} ceph osd crush link \textless{}name\textgreater{} \textless{}args\textgreater{} {[}\textless{}args\textgreater{}...{]} & links existing entry for \textless{}name\textgreater{} under location \textless{}args\textgreater{}. \tn % Row Count 4 (+ 3) % Row 10 \SetRowColor{LightBackground} ceph osd crush move \textless{}name\textgreater{} \textless{}args\textgreater{} {[}\textless{}args\textgreater{}...{]} & moves existing entry for \textless{}name\textgreater{} to location \textless{}args\textgreater{}. \tn % Row Count 7 (+ 3) % Row 11 \SetRowColor{white} ceph osd crush remove \textless{}name\textgreater{} \{\textless{}ancestor\textgreater{}\} & removes \textless{}name\textgreater{} from crush map (everywhere, or just at \textless{}ancestor\textgreater{}). \tn % Row Count 11 (+ 4) % Row 12 \SetRowColor{LightBackground} ceph osd crush rename-bucket \textless{}srcname\textgreater{} \textless{}dstname\textgreater{} & renames bucket \textless{}srcname\textgreater{} to \textless{}dstname\textgreater{} \tn % Row Count 14 (+ 3) % Row 13 \SetRowColor{white} ceph osd crush reweight \textless{}name\textgreater{} \textless{}float{[}0.0-{]}\textgreater{} & change \textless{}name\textgreater{}'s weight to \textless{}weight\textgreater{} in crush map. \tn % Row Count 17 (+ 3) % Row 14 \SetRowColor{LightBackground} ceph osd crush reweight-all & recalculate the weights for the tree to ensure they sum correctly \tn % Row Count 21 (+ 4) % Row 15 \SetRowColor{white} eph osd crush reweight-subtree \textless{}name\textgreater{} \textless{}weight\textgreater{} & changes all leaf items beneath \textless{}name\textgreater{} to \textless{}weight\textgreater{} in crush map \tn % Row Count 25 (+ 4) % Row 16 \SetRowColor{LightBackground} ceph osd crush rm \textless{}name\textgreater{} \{\textless{}ancestor\textgreater{}\} & removes \textless{}name\textgreater{} from crush map (everywhere, or just at \textless{}ancestor\textgreater{}). \tn % Row Count 29 (+ 4) % Row 17 \SetRowColor{white} ceph osd crush rule create-erasure \textless{}name\textgreater{} \{\textless{}profile\textgreater{}\} & creates crush rule \textless{}name\textgreater{} for erasure coded pool created with \textless{}profile\textgreater{} (default default). \tn % Row Count 34 (+ 5) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.4885 cm} x{2.4885 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{ceph osd (cont)}} \tn % Row 18 \SetRowColor{LightBackground} ceph osd crush rule create-simple \textless{}name\textgreater{} \textless{}root\textgreater{} \textless{}type\textgreater{} \{firstn|indep\} & creates crush rule \textless{}name\textgreater{} to start from \textless{}root\textgreater{}, replicate across buckets of type \textless{}type\textgreater{}, using a choose mode of \textless{}firstn|indep\textgreater{} (default firstn; indep best for erasure pools). \tn % Row Count 9 (+ 9) % Row 19 \SetRowColor{white} ceph osd crush rule dump \{\textless{}name\textgreater{}\} & dumps crush rule \textless{}name\textgreater{} (default all). \tn % Row Count 11 (+ 2) % Row 20 \SetRowColor{LightBackground} ceph osd crush rule ls & lists crush rules. \tn % Row Count 13 (+ 2) % Row 21 \SetRowColor{white} ceph osd crush rule rm \textless{}name\textgreater{} & removes crush rule \textless{}name\textgreater{} \tn % Row Count 15 (+ 2) % Row 22 \SetRowColor{LightBackground} ceph osd crush set \textless{}osdname (id|osd.id)\textgreater{} \textless{}float{[}0.0-{]}\textgreater{} \textless{}args\textgreater{} {[}\textless{}args\textgreater{}...{]} & set with osdname/osd.id update crushmap position and weight for \textless{}name\textgreater{} to \textless{}weight\textgreater{} with location \textless{}args\textgreater{}. \tn % Row Count 21 (+ 6) % Row 23 \SetRowColor{white} ceph osd crush show-tunables & shows current crush tunables. \tn % Row Count 23 (+ 2) % Row 24 \SetRowColor{LightBackground} ceph osd crush tree & ows the crush buckets and items in a tree view. \tn % Row Count 26 (+ 3) % Row 25 \SetRowColor{white} ceph osd crush unlink \textless{}name\textgreater{} \{\textless{}ancestor\textgreater{}\} & unlinks \textless{}name\textgreater{} from crush map (everywhere, or just at \textless{}ancestor\textgreater{}). \tn % Row Count 30 (+ 4) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.4885 cm} x{2.4885 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{ceph osd (cont)}} \tn % Row 26 \SetRowColor{LightBackground} ceph osd df \{plain|tree\} & shows OSD utilization \tn % Row Count 2 (+ 2) % Row 27 \SetRowColor{white} ceph osd deep-scrub \textless{}who\textgreater{} & initiates deep scrub on specified osd. \tn % Row Count 4 (+ 2) % Row 28 \SetRowColor{LightBackground} ceph osd down \textless{}ids\textgreater{} {[}\textless{}ids\textgreater{}...{]} & sets osd(s) \textless{}id\textgreater{} {[}\textless{}id\textgreater{}…{]} down. \tn % Row Count 6 (+ 2) % Row 29 \SetRowColor{white} ceph osd dump & prints summary of OSD map. \tn % Row Count 8 (+ 2) % Row 30 \SetRowColor{LightBackground} ceph osd find \textless{}int{[}0-{]}\textgreater{} & find osd \textless{}id\textgreater{} in the CRUSH map and shows its location. \tn % Row Count 11 (+ 3) % Row 31 \SetRowColor{white} ceph osd getcrushmap & gets CRUSH map. \tn % Row Count 12 (+ 1) % Row 32 \SetRowColor{LightBackground} ceph osd getmap & gets OSD map. \tn % Row Count 13 (+ 1) % Row 33 \SetRowColor{white} ceph osd getmaxosd & shows largest OSD id \tn % Row Count 14 (+ 1) % Row 34 \SetRowColor{LightBackground} ceph osd in \textless{}ids\textgreater{} {[}\textless{}ids\textgreater{}...{]} & sets osd(s) \textless{}id\textgreater{} {[}\textless{}id\textgreater{}…{]} in. \tn % Row Count 16 (+ 2) % Row 35 \SetRowColor{white} ceph osd lost \textless{}int{[}0-{]}\textgreater{} \{-{}-yes-i-really-mean-it\} & marks osd as permanently lost. THIS DESTROYS DATA IF NO MORE REPLICAS EXIST, BE CAREFUL. \tn % Row Count 21 (+ 5) % Row 36 \SetRowColor{LightBackground} ceph osd ls & shows all OSD ids. \tn % Row Count 22 (+ 1) % Row 37 \SetRowColor{white} ceph osd lspools & lists pools \tn % Row Count 23 (+ 1) % Row 38 \SetRowColor{LightBackground} ceph osd map \textless{}poolname\textgreater{} \textless{}objectname\textgreater{} & finds pg for \textless{}object\textgreater{} in \textless{}pool\textgreater{}. \tn % Row Count 25 (+ 2) % Row 39 \SetRowColor{white} ceph osd metadata \{int{[}0-{]}\} (default all) & fetches metadata for osd \textless{}id\textgreater{}. \tn % Row Count 28 (+ 3) % Row 40 \SetRowColor{LightBackground} ceph osd out \textless{}ids\textgreater{} {[}\textless{}ids\textgreater{}...{]} & sets osd(s) \textless{}id\textgreater{} {[}\textless{}id\textgreater{}…{]} out. \tn % Row Count 30 (+ 2) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.4885 cm} x{2.4885 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{ceph osd (cont)}} \tn % Row 41 \SetRowColor{LightBackground} ceph osd ok-to-stop \textless{}id\textgreater{} {[}\textless{}ids\textgreater{}...{]} {[}-{}-max \textless{}num\textgreater{}{]} & checks whether the list of OSD(s) can be stopped without immediately making data unavailable. That is, all data should remain readable and writeable, although data redundancy may be reduced as some PGs may end up in a degraded (but active) state. It will return a success code if it is okay to stop the OSD(s), or an error code and informative message if it is not or if no conclusion can be drawn at the current time. \tn % Row Count 21 (+ 21) % Row 42 \SetRowColor{white} ceph osd pause & pauses osd. \tn % Row Count 22 (+ 1) % Row 43 \SetRowColor{LightBackground} ceph osd perf & rints dump of OSD perf summary stats. \tn % Row Count 24 (+ 2) % Row 44 \SetRowColor{white} ceph osd force-create-pg \textless{}pgid\textgreater{} & forces creation of pg \textless{}pgid\textgreater{}. \tn % Row Count 26 (+ 2) % Row 45 \SetRowColor{LightBackground} ceph osd pool create \textless{}poolname\textgreater{} \{\textless{}int{[}0-{]}\textgreater{}\} \{\textless{}int{[}0-{]}\textgreater{}\} \{replicated|erasure\} \{\textless{}erasure\_code\_profile\textgreater{}\} \{\textless{}rule\textgreater{}\} \{\textless{}int\textgreater{}\} \{-{}-autoscale-mode=\textless{}on,off,warn\textgreater{}\} & creates pool. \tn % Row Count 34 (+ 8) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.4885 cm} x{2.4885 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{ceph osd (cont)}} \tn % Row 46 \SetRowColor{LightBackground} ceph osd pool delete \textless{}poolname\textgreater{} \{\textless{}poolname\textgreater{}\} \{-{}-yes-i-really-really-mean-it\} & deletes pool. (DATA LOSS BE CAREFUL!) \tn % Row Count 4 (+ 4) % Row 47 \SetRowColor{white} ceph osd pool get \textless{}poolname\textgreater{} \seqsplit{size|min\_size|pg\_num|pgp\_num|crush\_rule|write\_fadvise\_dontneed} & gets pool parameter \textless{}var\textgreater{} \tn % Row Count 9 (+ 5) % Row 48 \SetRowColor{LightBackground} eph osd pool get \textless{}poolname\textgreater{} all & to get all pool parameters that apply to the pool's type: \tn % Row Count 12 (+ 3) % Row 49 \SetRowColor{white} ceph osd pool get-quota \textless{}poolname\textgreater{} & obtains object or byte limits for pool. \tn % Row Count 14 (+ 2) % Row 50 \SetRowColor{LightBackground} ceph osd pool ls \{detail\} & list pools \tn % Row Count 16 (+ 2) % Row 51 \SetRowColor{white} ceph osd pool mksnap \textless{}poolname\textgreater{} \textless{}snap\textgreater{} & makes snapshot \textless{}snap\textgreater{} in \textless{}pool\textgreater{}. \tn % Row Count 18 (+ 2) % Row 52 \SetRowColor{LightBackground} ceph osd pool rename \textless{}poolname\textgreater{} \textless{}poolname\textgreater{} & renames \textless{}srcpool\textgreater{} to \textless{}destpool\textgreater{}. \tn % Row Count 21 (+ 3) % Row 53 \SetRowColor{white} ceph osd pool rmsnap \textless{}poolname\textgreater{} \textless{}snap\textgreater{} & removes snapshot \textless{}snap\textgreater{} from \textless{}pool\textgreater{}. \tn % Row Count 23 (+ 2) % Row 54 \SetRowColor{LightBackground} ceph osd pool set \textless{}poolname\textgreater{} \seqsplit{size|min\_size|pg\_num|} \seqsplit{pgp\_num|crush\_rule|hashpspool|nodelete|nopgchange|nosizechange|} \seqsplit{hit\_set\_type|hit\_set\_period|hit\_set\_count|hit\_set\_fpp|debug\_fake\_ec\_pool|} \seqsplit{target\_max\_bytes|target\_max\_objects|cache\_target\_dirty\_ratio|} \seqsplit{cache\_target\_dirty\_high\_ratio|} \seqsplit{cache\_target\_full\_ratio|cache\_min\_flush\_age|cache\_min\_evict\_age|} \seqsplit{min\_read\_recency\_for\_promote|write\_fadvise\_dontneed|hit\_set\_grade\_decay\_rate|} \seqsplit{hit\_set\_search\_last\_n} \textless{}val\textgreater{} \{-{}-yes-i-really-mean-it\} & sets pool parameter \textless{}var\textgreater{} to \textless{}val\textgreater{}. \tn % Row Count 47 (+ 24) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.4885 cm} x{2.4885 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{ceph osd (cont)}} \tn % Row 55 \SetRowColor{LightBackground} ceph osd pool set-quota \textless{}poolname\textgreater{} \seqsplit{max\_objects|max\_bytes} \textless{}val\textgreater{} & sets object or byte limit on pool. \tn % Row Count 4 (+ 4) % Row 56 \SetRowColor{white} ceph osd pool stats \{\textless{}name\textgreater{}\} & obtain stats from all pools, or from specified pool. \tn % Row Count 7 (+ 3) % Row 57 \SetRowColor{LightBackground} ceph osd repair \textless{}who\textgreater{} & initiates repair on a specified osd. \tn % Row Count 9 (+ 2) % Row 58 \SetRowColor{white} ceph osd reweight-by-pg \{\textless{}int{[}100-{]}\textgreater{}\} \{\textless{}poolname\textgreater{} {[}\textless{}poolname...{]}\} \{-{}-no-increasing\} & reweight OSDs by PG distribution {[}overload-percentage-for-consideration, default 120{]}. \tn % Row Count 14 (+ 5) % Row 59 \SetRowColor{LightBackground} ceph osd \seqsplit{reweight-by-utilization} \{\textless{}int{[}100-{]}\textgreater{} \{\textless{}float{[}0.0-{]}\textgreater{} \{\textless{}int{[}0-{]}\textgreater{}\}\}\} \{-{}-no-increasing\} & reweights OSDs by utilization. It only reweights outlier OSDs whose utilization exceeds the average, eg. the default 120\% limits reweight to those OSDs that are more than 20\% over the average. {[}overload-threshold, default 120 {[}max\_weight\_change, default 0.05 {[}max\_osds\_to\_adjust, default 4{]}{]}{]} \tn % Row Count 29 (+ 15) % Row 60 \SetRowColor{white} ceph osd rm \textless{}ids\textgreater{} {[}\textless{}ids\textgreater{}...{]} & removes osd(s) \textless{}id\textgreater{} {[}\textless{}id\textgreater{}…{]} from the OSD map. \tn % Row Count 32 (+ 3) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.4885 cm} x{2.4885 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{ceph osd (cont)}} \tn % Row 61 \SetRowColor{LightBackground} ceph osd destroy \textless{}id\textgreater{} \{-{}-yes-i-really-mean-it\} & marks OSD id as destroyed, removing its cephx entity's keys and all of its dm-crypt and daemon-private config key entries. This command will not remove the OSD from crush, nor will it remove the OSD from the OSD map. Instead, once the command successfully completes, the OSD will show marked as destroyed. In order to mark an OSD as destroyed, the OSD must first be marked as lost. \tn % Row Count 20 (+ 20) % Row 62 \SetRowColor{white} ceph osd purge \textless{}id\textgreater{} \{-{}-yes-i-really-mean-it\} & performs a combination of osd destroy, osd rm and osd crush remove. \tn % Row Count 24 (+ 4) % Row 63 \SetRowColor{LightBackground} ceph osd safe-to-destroy \textless{}id\textgreater{} {[}\textless{}ids\textgreater{}...{]} & checks whether it is safe to remove or destroy an OSD without reducing overall data redundancy or durability. It will return a success code if it is definitely safe, or an error code and informative message if it is not or if no conclusion can be drawn at the current time. \tn % Row Count 38 (+ 14) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.4885 cm} x{2.4885 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{ceph osd (cont)}} \tn % Row 64 \SetRowColor{LightBackground} ceph osd scrub \textless{}who\textgreater{} & initiates scrub on specified osd. \tn % Row Count 2 (+ 2) % Row 65 \SetRowColor{white} ceph osd set \seqsplit{pause|noup|nodown|noout|noin|nobackfill|} \seqsplit{norebalance|norecover|noscrub|nodeep-scrub|notieragent} & sets cluster-wide \textless{}flag\textgreater{} by updating OSD map. The full flag is not honored anymore since the Mimic release, and ceph osd set full is not supported in the Octopus release. \tn % Row Count 11 (+ 9) % Row 66 \SetRowColor{LightBackground} ceph osd setcrushmap & sets crush map from input file. \tn % Row Count 13 (+ 2) % Row 67 \SetRowColor{white} ceph osd setmaxosd \textless{}int{[}0-{]}\textgreater{} & sets new maximum osd value. \tn % Row Count 15 (+ 2) % Row 68 \SetRowColor{LightBackground} ceph osd \seqsplit{set-require-min-compat-client} \textless{}version\textgreater{} & enforces the cluster to be backward compatible with the specified client version. This subcommand prevents you from making any changes (e.g., crush tunables, or using new features) that would violate the current setting. Please note, This subcommand will fail if any connected daemon or client is not compatible with the features offered by the given \textless{}version\textgreater{}. \tn % Row Count 34 (+ 19) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.4885 cm} x{2.4885 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{ceph osd (cont)}} \tn % Row 69 \SetRowColor{LightBackground} ceph osd stat & prints summary of OSD map. \tn % Row Count 2 (+ 2) % Row 70 \SetRowColor{white} ceph osd tree \{\textless{}int{[}0-{]}\textgreater{}\} & prints OSD tree. \tn % Row Count 4 (+ 2) % Row 71 \SetRowColor{LightBackground} ceph osd unpause & unpauses osd. \tn % Row Count 5 (+ 1) % Row 72 \SetRowColor{white} ceph osd unset \seqsplit{pause|noup|nodown|noout|noin|nobackfill|} \seqsplit{norebalance|norecover|noscrub|nodeep-scrub|notieragent} & unsets cluster-wide \textless{}flag\textgreater{} by updating OSD map. \tn % Row Count 11 (+ 6) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}