{"id":67178,"date":"2025-09-16T09:00:30","date_gmt":"2025-09-16T07:00:30","guid":{"rendered":"https:\/\/nolabnoparty.com\/?p=67178"},"modified":"2025-09-14T17:56:38","modified_gmt":"2025-09-14T15:56:38","slug":"proxmox-upgrade-ceph-reef-to-squid","status":"publish","type":"post","link":"https:\/\/nolabnoparty.com\/en\/proxmox-upgrade-ceph-reef-to-squid\/","title":{"rendered":"Proxmox upgrade Ceph Reef to Squid"},"content":{"rendered":"<p><img decoding=\"async\" class=\"aligncenter wp-image-67435 size-full\" title=\"upgrade-ceph-reef-to-squid-in-proxmox-01\" src=\"https:\/\/nolabnoparty.com\/wp-content\/uploads\/2025\/09\/upgrade-ceph-reef-to-squid-in-proxmox-01.jpg\" alt=\"upgrade-ceph-reef-to-squid-in-proxmox-01\" width=\"602\" height=\"202\" \/><\/p>\n<p>If you are running Ceph Reef in your <a href=\"https:\/\/nolabnoparty.com\/en\/proxmox-ve-configure-a-ceph-storage-cluster\/\">Proxmox infrastructure<\/a> and plan to upgrade to Proxmox 9, you must first upgrade Ceph Reef to Squid to <strong>meet the prerequisites<\/strong>.<\/p>\n<p>As a best practice, before proceeding with the upgrade make sure to have a <a href=\"https:\/\/nolabnoparty.com\/en\/veeam-v12-2-proxmox-ve-backup-configuration\/\">working backup<\/a> of your <strong>VMs and Containers<\/strong>.<!--more--><\/p>\n<p>&nbsp;<\/p>\n<h2>Prerequisites<\/h2>\n<p>To upgrade Ceph Reef to Squid, make sure all nodes are running <a href=\"https:\/\/nolabnoparty.com\/en\/proxmox-vs-vmware-which-platform-should-you-choose\/\">Proxmox VE 8.2<\/a> (or higher) and Ceph is on version Reef (18.2.4-pve3 or higher).<\/p>\n<p>Verify the installed Proxmox version.<\/p>\n<p><span style=\"color: #0000ff;\"># pveversion<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-large wp-image-67437\" src=\"https:\/\/nolabnoparty.com\/wp-content\/uploads\/2025\/09\/upgrade-ceph-reef-to-squid-in-proxmox-02-600x66.jpg\" alt=\"\" width=\"600\" height=\"66\" title=\"\"><\/p>\n<p>Check the installed Ceph cluster version.<\/p>\n<p><span style=\"color: #0000ff;\"># ceph --version<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-large wp-image-67439\" src=\"https:\/\/nolabnoparty.com\/wp-content\/uploads\/2025\/09\/upgrade-ceph-reef-to-squid-in-proxmox-03-600x70.jpg\" alt=\"\" width=\"600\" height=\"70\" title=\"\"><\/p>\n<p>Confirm the <a href=\"https:\/\/nolabnoparty.com\/en\/shutdown-proxmox-cluster-with-ceph-storage\/\">Ceph cluster<\/a> is in a healthy state.<\/p>\n<p><span style=\"color: #0000ff;\"># ceph -s<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-large wp-image-67441\" src=\"https:\/\/nolabnoparty.com\/wp-content\/uploads\/2025\/09\/upgrade-ceph-reef-to-squid-in-proxmox-04-600x270.jpg\" alt=\"\" width=\"600\" height=\"270\" title=\"\"><\/p>\n<p>&nbsp;<\/p>\n<h2>Prepare the system<\/h2>\n<p><strong>On all nodes<\/strong>, change the<strong> Ceph repositories<\/strong> from Reef to Squid.<\/p>\n<p><span style=\"color: #0000ff;\"># sed -i 's\/reef\/squid\/' \/etc\/apt\/sources.list.d\/ceph.list<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-large wp-image-67443\" src=\"https:\/\/nolabnoparty.com\/wp-content\/uploads\/2025\/09\/upgrade-ceph-reef-to-squid-in-proxmox-05-600x52.jpg\" alt=\"\" width=\"600\" height=\"52\" title=\"\"><\/p>\n<p>Verify the <em>\/etc\/apt\/sources.list.d\/ceph.list<\/em> file contains the correct entry. For users with a <strong>valid subscription<\/strong>, the entry should be:<\/p>\n<blockquote><p>deb https:\/\/enterprise.proxmox.com\/debian\/ceph-squid bookworm enterprise<\/p><\/blockquote>\n<p><span style=\"color: #0000ff;\"># cat \/etc\/apt\/sources.list.d\/ceph.list<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-large wp-image-67445\" src=\"https:\/\/nolabnoparty.com\/wp-content\/uploads\/2025\/09\/upgrade-ceph-reef-to-squid-in-proxmox-06-600x70.jpg\" alt=\"\" width=\"600\" height=\"70\" title=\"\"><\/p>\n<p>If you don't have a valid subscription, use the publicly available <strong>no-subscription repository<\/strong>.<\/p>\n<blockquote><p>deb http:\/\/download.proxmox.com\/debian\/ceph-squid bookworm no-subscription<\/p><\/blockquote>\n<p><span style=\"color: #0000ff;\"># cat \/etc\/apt\/sources.list.d\/ceph.list<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-large wp-image-67447\" src=\"https:\/\/nolabnoparty.com\/wp-content\/uploads\/2025\/09\/upgrade-ceph-reef-to-squid-in-proxmox-07-600x70.jpg\" alt=\"\" width=\"600\" height=\"70\" title=\"\"><\/p>\n<p>To prevent the Ceph <strong>cluster from rebalancing<\/strong> during the upgrade, set the\u00a0<em>noout<\/em> flag.<\/p>\n<p><span style=\"color: #0000ff;\"># ceph osd set noout<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-large wp-image-67449\" src=\"https:\/\/nolabnoparty.com\/wp-content\/uploads\/2025\/09\/upgrade-ceph-reef-to-squid-in-proxmox-08-600x70.jpg\" alt=\"\" width=\"600\" height=\"70\" title=\"\"><\/p>\n<p>&nbsp;<\/p>\n<h2>Upgrade Ceph Reef to Squid cluster<\/h2>\n<p>Once the system is prepared to upgrade Ceph Reef to Squid, you can begin the upgrade process. Perform these steps on each node, <strong>one at a time<\/strong>.<\/p>\n<p>Place the first node in <strong>Maintenance Mode<\/strong> to <strong>stop HA services<\/strong>. Optional but suggested.<\/p>\n<p><span style=\"color: #0000ff;\"># ha-manager crm-command node-maintenance enable proxmox01<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-large wp-image-67451\" src=\"https:\/\/nolabnoparty.com\/wp-content\/uploads\/2025\/09\/upgrade-ceph-reef-to-squid-in-proxmox-09-600x52.jpg\" alt=\"\" width=\"600\" height=\"52\" title=\"\"><\/p>\n<p>Verify the node is in Maintenance Mode.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-67453\" src=\"https:\/\/nolabnoparty.com\/wp-content\/uploads\/2025\/09\/upgrade-ceph-reef-to-squid-in-proxmox-10.jpg\" alt=\"\" width=\"436\" height=\"240\" title=\"\"><\/p>\n<p>Refresh the <b>repositories package<\/b>.<\/p>\n<p><span style=\"color: #0000ff;\"># apt update<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-large wp-image-67455\" src=\"https:\/\/nolabnoparty.com\/wp-content\/uploads\/2025\/09\/upgrade-ceph-reef-to-squid-in-proxmox-11-600x235.jpg\" alt=\"\" width=\"600\" height=\"235\" title=\"\"><\/p>\n<p>Install the latest updates.<\/p>\n<p><span style=\"color: #0000ff;\"># apt full-upgrade<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-large wp-image-67457\" src=\"https:\/\/nolabnoparty.com\/wp-content\/uploads\/2025\/09\/upgrade-ceph-reef-to-squid-in-proxmox-12-600x290.jpg\" alt=\"\" width=\"600\" height=\"290\" title=\"\"><\/p>\n<p>Exit the node from <b>Maintenance Mode<\/b>.<\/p>\n<p><span style=\"color: #0000ff;\"># ha-manager crm-command node-maintenance disable proxmox01<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-large wp-image-67459\" src=\"https:\/\/nolabnoparty.com\/wp-content\/uploads\/2025\/09\/upgrade-ceph-reef-to-squid-in-proxmox-13-600x39.jpg\" alt=\"\" width=\"600\" height=\"39\" title=\"\"><\/p>\n<p>Check the Ceph version. <strong>Ceph Squid 19.2.2<\/strong>\u00a0should be displayed.<\/p>\n<p><span style=\"color: #0000ff;\"># ceph --version<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-large wp-image-67482\" src=\"https:\/\/nolabnoparty.com\/wp-content\/uploads\/2025\/09\/upgrade-ceph-reef-to-squid-in-proxmox-15-600x60.jpg\" alt=\"\" width=\"600\" height=\"60\" title=\"\"><\/p>\n<p>Repeat this process for <strong>all remaining nodes<\/strong>, keeping the <em>noout<\/em> <strong>flag set<\/strong> throughout the entire procedure.<\/p>\n<p>&nbsp;<\/p>\n<h2>Post upgrade<\/h2>\n<p>After upgrading all nodes, verify that the Ceph cluster is in a<strong> healthy state<\/strong>. A \"<em>noout flag(s) set<\/em>\" <strong>health warning<\/strong> is normal at this stage.<\/p>\n<p><span style=\"color: #0000ff;\"># ceph -s<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-large wp-image-67494\" src=\"https:\/\/nolabnoparty.com\/wp-content\/uploads\/2025\/09\/upgrade-ceph-reef-to-squid-in-proxmox-16-600x304.jpg\" alt=\"\" width=\"600\" height=\"304\" title=\"\"><\/p>\n<p>From the Proxmox GUI, select a node and go to <strong>Ceph &gt; Monitor<\/strong>. The reported <strong>Version<\/strong> should be the old value that needs to be updated.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-large wp-image-67496\" src=\"https:\/\/nolabnoparty.com\/wp-content\/uploads\/2025\/09\/upgrade-ceph-reef-to-squid-in-proxmox-17-600x390.jpg\" alt=\"\" width=\"600\" height=\"390\" title=\"\"><\/p>\n<p>Check the monitor version on one node. It should report \"<em>min_mon_release 18 (reef)<\/em>\".<\/p>\n<p><span style=\"color: #0000ff;\"># ceph mon dump | grep min_mon_release<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-large wp-image-67498\" src=\"https:\/\/nolabnoparty.com\/wp-content\/uploads\/2025\/09\/upgrade-ceph-reef-to-squid-in-proxmox-18-600x70.jpg\" alt=\"\" width=\"600\" height=\"70\" title=\"\"><\/p>\n<p><strong>Restart the monitor<\/strong> on each node where a monitor runs.<\/p>\n<p><span style=\"color: #0000ff;\"># systemctl restart ceph-mon.target<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-large wp-image-67500\" src=\"https:\/\/nolabnoparty.com\/wp-content\/uploads\/2025\/09\/upgrade-ceph-reef-to-squid-in-proxmox-19-600x52.jpg\" alt=\"\" width=\"600\" height=\"52\" title=\"\"><\/p>\n<p>After restarting all monitors, ensure the <strong>upgrade is complete<\/strong>. It should now report \"<em>min_mon_release 19 (squid)<\/em>\".<\/p>\n<p><span style=\"color: #0000ff;\"># ceph mon dump | grep min_mon_release<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-large wp-image-67502\" src=\"https:\/\/nolabnoparty.com\/wp-content\/uploads\/2025\/09\/upgrade-ceph-reef-to-squid-in-proxmox-20-600x78.jpg\" alt=\"\" width=\"600\" height=\"78\" title=\"\"><\/p>\n<p>If the <strong>daemon manager<\/strong> doesn't restart automatically, manually restart it on the nodes where it is enabled.<\/p>\n<p><span style=\"color: #0000ff;\"># systemctl restart ceph-mgr.target<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-large wp-image-67504\" src=\"https:\/\/nolabnoparty.com\/wp-content\/uploads\/2025\/09\/upgrade-ceph-reef-to-squid-in-proxmox-21-600x48.jpg\" alt=\"\" width=\"600\" height=\"48\" title=\"\"><\/p>\n<p>Verify that both the monitor and manager <strong>versions are 19.2.2<\/strong> within the Proxmox UI under <b>Ceph &gt; Monitor<\/b>.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-large wp-image-67506\" src=\"https:\/\/nolabnoparty.com\/wp-content\/uploads\/2025\/09\/upgrade-ceph-reef-to-squid-in-proxmox-22-600x381.jpg\" alt=\"\" width=\"600\" height=\"381\" title=\"\"><\/p>\n<p>Now go to <strong>Ceph &gt; OSD<\/strong> and check the <strong>OSDs Version<\/strong>. Some disks need to be updated.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-large wp-image-67508\" src=\"https:\/\/nolabnoparty.com\/wp-content\/uploads\/2025\/09\/upgrade-ceph-reef-to-squid-in-proxmox-23-600x301.jpg\" alt=\"\" width=\"600\" height=\"301\" title=\"\"><\/p>\n<p><strong>Restart all OSDs<\/strong> on each node. To avoid data loss, run the command <strong>one node at time<\/strong>.<\/p>\n<p><span style=\"color: #0000ff;\"># systemctl restart ceph-osd.target<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-large wp-image-67510\" src=\"https:\/\/nolabnoparty.com\/wp-content\/uploads\/2025\/09\/upgrade-ceph-reef-to-squid-in-proxmox-24-600x48.jpg\" alt=\"\" width=\"600\" height=\"48\" title=\"\"><\/p>\n<p>After <strong>restarting all OSDs<\/strong> on all nodes, verify the OSD <strong>Version<\/strong> is 19.2.2 in the Proxmox UI under <strong>Ceph &gt; OSD<\/strong>.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-large wp-image-67512\" src=\"https:\/\/nolabnoparty.com\/wp-content\/uploads\/2025\/09\/upgrade-ceph-reef-to-squid-in-proxmox-25-600x348.jpg\" alt=\"\" width=\"600\" height=\"348\" title=\"\"><\/p>\n<p>After all OSDs are running the latest version, you may see a <strong>health warning<\/strong> \"<em>all OSDs are running squid or later but require_osd_release &lt; squid<\/em>\".<\/p>\n<p><span style=\"color: #0000ff;\"># ceph -s<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-large wp-image-67514\" src=\"https:\/\/nolabnoparty.com\/wp-content\/uploads\/2025\/09\/upgrade-ceph-reef-to-squid-in-proxmox-26-600x310.jpg\" alt=\"\" width=\"600\" height=\"310\" title=\"\"><\/p>\n<p>To fix this, <strong>disallow pre-Reef OSDs<\/strong> and enable all new <strong>Squid-only functionality<\/strong>.<\/p>\n<p><span style=\"color: #0000ff;\"># ceph osd require-osd-release squid<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-large wp-image-67516\" src=\"https:\/\/nolabnoparty.com\/wp-content\/uploads\/2025\/09\/upgrade-ceph-reef-to-squid-in-proxmox-27-600x43.jpg\" alt=\"\" width=\"600\" height=\"43\" title=\"\"><\/p>\n<p>Checking the <a href=\"https:\/\/nolabnoparty.com\/en\/remove-ceph-datastore-from-proxmox\/\">Ceph cluster<\/a>, it is now in a healthy state with the <em>noout<\/em> flag set.<\/p>\n<p><span style=\"color: #0000ff;\"># ceph -s<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-large wp-image-67518\" src=\"https:\/\/nolabnoparty.com\/wp-content\/uploads\/2025\/09\/upgrade-ceph-reef-to-squid-in-proxmox-28-600x304.jpg\" alt=\"\" width=\"600\" height=\"304\" title=\"\"><\/p>\n<p>The last step is to <b>unset<\/b> the <i>noout<\/i> flag.<\/p>\n<p><span style=\"color: #0000ff;\"># ceph osd unset noout<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-large wp-image-67520\" src=\"https:\/\/nolabnoparty.com\/wp-content\/uploads\/2025\/09\/upgrade-ceph-reef-to-squid-in-proxmox-29-600x65.jpg\" alt=\"\" width=\"600\" height=\"65\" title=\"\"><\/p>\n<p>The Ceph Squid cluster is now in a healthy state.<\/p>\n<p><span style=\"color: #0000ff;\"># ceph -s<\/span><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-large wp-image-67522\" src=\"https:\/\/nolabnoparty.com\/wp-content\/uploads\/2025\/09\/upgrade-ceph-reef-to-squid-in-proxmox-30-600x265.jpg\" alt=\"\" width=\"600\" height=\"265\" title=\"\"><\/p>\n<p>Your Ceph cluster has now been successfully upgraded from Reef to <a href=\"https:\/\/docs.ceph.com\/en\/latest\/releases\/squid\/\" target=\"_blank\" rel=\"noopener\">Squid<\/a>. This completes the prerequisite for the <strong>Proxmox 8 to 9 upgrade<\/strong>.<\/p>\n<p><img decoding=\"async\" title=\"signature\" src=\"https:\/\/nolabnoparty.com\/wp-content\/uploads\/images\/firma.jpg\" alt=\"signature\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>If you are running Ceph Reef in your Proxmox infrastructure and plan to upgrade to Proxmox 9, you must first upgrade Ceph Reef to Squid to meet the prerequisites. As a best practice, before proceeding with the upgrade make sure to have a working backup of your VMs and Containers.<\/p>\n","protected":false},"author":3,"featured_media":67435,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rop_custom_images_group":[],"rop_custom_messages_group":[],"rop_publish_now":"no","rop_publish_now_accounts":{"linkedin_93tdZWzMZc_93tdZWzMZc":"","facebook_2879994398731222_17841400390232720":"","twitter_113568041_113568041":"","mastodon_115463926174894442_115463926174894442":""},"rop_publish_now_history":[{"account":"facebook_2879994398731222_234218296615646","service":"facebook","timestamp":1758006031,"status":"queued"},{"account":"twitter_113568041_113568041","service":"twitter","timestamp":1770806954,"status":"success"},{"account":"linkedin_93tdZWzMZc_93tdZWzMZc","service":"linkedin","timestamp":1770806969,"status":"error"}],"rop_publish_now_status":"queued","footnotes":""},"categories":[2798],"tags":[2890,2795,3011,3012,876],"class_list":["post-67178","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-proxmox-en","tag-ceph","tag-proxmox","tag-reef","tag-squid","tag-upgrade-en","has_thumb"],"_links":{"self":[{"href":"https:\/\/nolabnoparty.com\/en\/wp-json\/wp\/v2\/posts\/67178","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nolabnoparty.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nolabnoparty.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nolabnoparty.com\/en\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/nolabnoparty.com\/en\/wp-json\/wp\/v2\/comments?post=67178"}],"version-history":[{"count":0,"href":"https:\/\/nolabnoparty.com\/en\/wp-json\/wp\/v2\/posts\/67178\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nolabnoparty.com\/en\/wp-json\/wp\/v2\/media\/67435"}],"wp:attachment":[{"href":"https:\/\/nolabnoparty.com\/en\/wp-json\/wp\/v2\/media?parent=67178"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nolabnoparty.com\/en\/wp-json\/wp\/v2\/categories?post=67178"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nolabnoparty.com\/en\/wp-json\/wp\/v2\/tags?post=67178"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}