<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.openstack.org/w/index.php?action=history&amp;feed=atom&amp;title=OpsGuide%2FStorage_Node_Failures_and_Maintenance</id>
		<title>OpsGuide/Storage Node Failures and Maintenance - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.openstack.org/w/index.php?action=history&amp;feed=atom&amp;title=OpsGuide%2FStorage_Node_Failures_and_Maintenance"/>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=OpsGuide/Storage_Node_Failures_and_Maintenance&amp;action=history"/>
		<updated>2026-07-10T16:42:41Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.28.2</generator>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=OpsGuide/Storage_Node_Failures_and_Maintenance&amp;diff=157910&amp;oldid=prev</id>
		<title>David.desrosiers: David.desrosiers moved page Storage Node Failures and Maintenance to OpsGuide/Storage Node Failures and Maintenance without leaving a redirect</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=OpsGuide/Storage_Node_Failures_and_Maintenance&amp;diff=157910&amp;oldid=prev"/>
				<updated>2017-11-14T02:42:27Z</updated>
		
		<summary type="html">&lt;p&gt;David.desrosiers moved page &lt;a href=&quot;/w/index.php?title=Storage_Node_Failures_and_Maintenance&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Storage Node Failures and Maintenance (page does not exist)&quot;&gt;Storage Node Failures and Maintenance&lt;/a&gt; to &lt;a href=&quot;/wiki/OpsGuide/Storage_Node_Failures_and_Maintenance&quot; title=&quot;OpsGuide/Storage Node Failures and Maintenance&quot;&gt;OpsGuide/Storage Node Failures and Maintenance&lt;/a&gt; without leaving a redirect&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style='vertical-align: top;' lang='en'&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 02:42, 14 November 2017&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan='2' style='text-align: center;' lang='en'&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>David.desrosiers</name></author>	</entry>

	<entry>
		<id>https://wiki.openstack.org/w/index.php?title=OpsGuide/Storage_Node_Failures_and_Maintenance&amp;diff=157853&amp;oldid=prev</id>
		<title>David.desrosiers: Created page with &quot;== &lt;div id=&quot;storage-node-failures-and-maintenance&quot;&gt; Storage Node Failures and Maintenance&lt;/div&gt; ==  Because of the high redundancy of Object Storage, dealing with object stora...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.openstack.org/w/index.php?title=OpsGuide/Storage_Node_Failures_and_Maintenance&amp;diff=157853&amp;oldid=prev"/>
				<updated>2017-11-13T19:57:24Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;== &amp;lt;div id=&amp;quot;storage-node-failures-and-maintenance&amp;quot;&amp;gt; Storage Node Failures and Maintenance&amp;lt;/div&amp;gt; ==  Because of the high redundancy of Object Storage, dealing with object stora...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== &amp;lt;div id=&amp;quot;storage-node-failures-and-maintenance&amp;quot;&amp;gt; Storage Node Failures and Maintenance&amp;lt;/div&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Because of the high redundancy of Object Storage, dealing with object storage node issues is a lot easier than dealing with compute node issues.&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;div id=&amp;quot;rebooting-a-storage-node&amp;quot;&amp;gt; Rebooting a Storage Node&amp;lt;/div&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
If a storage node requires a reboot, simply reboot it. Requests for data hosted on that node are redirected to other copies while the server is rebooting.&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;div id=&amp;quot;shutting-down-a-storage-node&amp;quot;&amp;gt; Shutting Down a Storage Node&amp;lt;/div&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
If you need to shut down a storage node for an extended period of time (one or more days), consider removing the node from the storage ring. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash style=&amp;quot;border:2px solid #ccc;&amp;quot;&amp;gt;# swift-ring-builder account.builder remove &amp;amp;lt;ip address of storage node&amp;amp;gt;&lt;br /&gt;
# swift-ring-builder container.builder remove &amp;amp;lt;ip address of storage node&amp;amp;gt;&lt;br /&gt;
# swift-ring-builder object.builder remove &amp;amp;lt;ip address of storage node&amp;amp;gt;&lt;br /&gt;
# swift-ring-builder account.builder rebalance&lt;br /&gt;
# swift-ring-builder container.builder rebalance&lt;br /&gt;
# swift-ring-builder object.builder rebalance&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Next, redistribute the ring files to the other nodes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash style=&amp;quot;border:2px solid #ccc;&amp;quot;&amp;gt;# for i in s01.example.com s02.example.com s03.example.com&lt;br /&gt;
&amp;amp;gt; do&lt;br /&gt;
&amp;amp;gt; scp *.ring.gz $i:/etc/swift&lt;br /&gt;
&amp;amp;gt; done&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
These actions effectively take the storage node out of the storage cluster.&lt;br /&gt;
&lt;br /&gt;
When the node is able to rejoin the cluster, just add it back to the ring. The exact syntax you use to add a node to your swift cluster with &amp;lt;code&amp;gt;swift-ring-builder&amp;lt;/code&amp;gt; heavily depends on the original options used when you originally created your cluster. Please refer back to those commands.&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;div id=&amp;quot;replacing-a-swift-disk&amp;quot;&amp;gt; Replacing a Swift Disk&amp;lt;/div&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
If a hard drive fails in an Object Storage node, replacing it is relatively easy. This assumes that your Object Storage environment is configured correctly, where the data that is stored on the failed drive is also replicated to other drives in the Object Storage environment.&lt;br /&gt;
&lt;br /&gt;
This example assumes that &amp;lt;code&amp;gt;/dev/sdb&amp;lt;/code&amp;gt; has failed.&lt;br /&gt;
&lt;br /&gt;
First, unmount the disk:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash style=&amp;quot;border:2px solid #ccc;&amp;quot;&amp;gt;# umount /dev/sdb&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Next, physically remove the disk from the server and replace it with a working disk.&lt;br /&gt;
&lt;br /&gt;
Ensure that the operating system has recognized the new disk:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash style=&amp;quot;border:2px solid #ccc;&amp;quot;&amp;gt;# dmesg | tail&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
You should see a message about &amp;lt;code&amp;gt;/dev/sdb&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Because it is recommended to not use partitions on a swift disk, simply format the disk as a whole:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash style=&amp;quot;border:2px solid #ccc;&amp;quot;&amp;gt;# mkfs.xfs /dev/sdb&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Finally, mount the disk:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=bash style=&amp;quot;border:2px solid #ccc;&amp;quot;&amp;gt;# mount -a&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Swift should notice the new disk and that no data exists. It then begins replicating the data to the disk from the other existing replicas.&lt;/div&gt;</summary>
		<author><name>David.desrosiers</name></author>	</entry>

	</feed>