<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>“</span>read-only xlator is loaded at gluster server (brick) stack. so once the volume is in place, you'd need to enable read-only option using volume set and then you should be able to mount the volume which would provide you the read-only access.”<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>OK, so fair enough, but is the physical volume on which the brick resides allowed to be on a r/o filesystem?  Again, it’s not just whether Gluster considers the volume to be read-only to clients, but whether the gluster brick and its underlying medium can be read-only.<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> Atin Mukherjee [mailto:amukherj@redhat.com] <br><b>Sent:</b> Tuesday, March 21, 2017 9:42 AM<br><b>To:</b> Mackay, Michael<br><b>Cc:</b> Samikshan Bairagya; gluster-devel@gluster.org<br><b>Subject:</b> (nwl) Re: [Gluster-devel] Read-only option for a replicated (replication for fail-over) Gluster volume<o:p></o:p></span></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><div><p class=MsoNormal><o:p>&nbsp;</o:p></p><div><p class=MsoNormal><o:p>&nbsp;</o:p></p><div><p class=MsoNormal>On Tue, Mar 21, 2017 at 6:06 PM, Mackay, Michael &lt;<a href="mailto:mackay@progeny.net" target="_blank">mackay@progeny.net</a>&gt; wrote:<o:p></o:p></p><p class=MsoNormal>Samikshan,<br><br>Thanks for your suggestion.<br><br>From what I understand, the read-only feature (which I had seen and researched) is a client option for mounting the filesystem.&nbsp; Unfortunately, we need the filesystem itself to be set up read-only, so that no one can modify it - in other words, we need to make sure that no client can mount it read/write.&nbsp; So, it has to be set up and started as r/o, and then the clients have no choice but to get a r/o copy.<o:p></o:p></p><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><p class=MsoNormal>read-only xlator is loaded at gluster server (brick) stack. so once the volume is in place, you'd need to enable read-only option using volume set and then you should be able to mount the volume which would provide you the read-only access. <br>&nbsp;<o:p></o:p></p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in'><p class=MsoNormal><br>Thanks<br>Mike<o:p></o:p></p><div><div><p class=MsoNormal><br>-----Original Message-----<br>From: Samikshan Bairagya [mailto:<a href="mailto:sbairagy@redhat.com">sbairagy@redhat.com</a>]<br>Sent: Monday, March 20, 2017 3:52 PM<br>To: Mackay, Michael<br>Cc: <a href="mailto:gluster-devel@gluster.org">gluster-devel@gluster.org</a><br>Subject: Re: [Gluster-devel] Read-only option for a replicated (replication for fail-over) Gluster volume<br><br><br><br>On 03/21/2017 12:38 AM, Mackay, Michael wrote:<br>&gt; Gluster folks:<br>&gt;<br>&gt; Our group has a need for a distributed filesystem, like Gluster, that can be mounted by clients as read-only.&nbsp; We wish to have the ability to seamless switch over to an alternate source of this read-only data if the default source fails.<br>&gt; The reason for this ROFS is so that every client can get access to applications and data that we want to ensure stays the same (unmodifiable) for an entire system delivery life cycle. To date we've used read-only NFS mounts reasonably well, but its failover performance is not at all great.<br>&gt;<br>&gt; We also don't want a &quot;WORM&quot; sort of arrangement - we want to prevent any and all writes to the volume once it's up and shared.<br>&gt;<br>&gt; So, under the &quot;how hard could it be&quot; mantra, we took version 3.7.15 and poked around a bit until we got it to do just what we want.&nbsp; It was a minor mod to 'xlators/features/index/src/index.c' and 'xlators/storage/posix/src/posix-helpers.c', along with a &quot;force&quot; option when doing the volume start command.<br>&gt;<br>&gt; We would happily share the specific changes, and they seem to fit in the 3.10.0 code base too; the question for the group is, would such a capability be of interest to the Gluster baseline?&nbsp; Possibly a precursor question (since I don't have much experience in gluster-devel at all, so please forgive my approach if it's wrong) is, to whom should I pose this question, if it's not to this group?<br>&gt;<br>&gt; Thanks for your time and I'd be happy to provide any further information.<br>&gt;<br><br>Hi Mike,<br><br>Have you checked the 'features.read-only' volume option. Apparently you can set it to on/off depending on whether you want your volume to be read-only or not. By default it is set to 'off'. The following would make your volume read-only for all clients accessing it:<br><br># gluster volume set &lt;VOLNAME&gt; features.read-only on<br><br>Hope that helped.<br><br>~ Samikshan<br>_______________________________________________<br>Gluster-devel mailing list<br><a href="mailto:Gluster-devel@gluster.org">Gluster-devel@gluster.org</a><br><a href="http://lists.gluster.org/mailman/listinfo/gluster-devel" target="_blank">http://lists.gluster.org/mailman/listinfo/gluster-devel</a><o:p></o:p></p></div></div></blockquote></div><p class=MsoNormal><br><br clear=all><br>-- <o:p></o:p></p><div><div><div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><p class=MsoNormal>~ Atin (atinm)<o:p></o:p></p></div></div></div></div></div></div></div></body></html>