Re: [nfsv4] Disk protection problem for pNFS block

Benny Halevy <bhalevy@panasas.com> Thu, 21 October 2010 18:23 UTC

Return-Path: <bhalevy@panasas.com>
X-Original-To: nfsv4@core3.amsl.com
Delivered-To: nfsv4@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 702273A68FA for <nfsv4@core3.amsl.com>; Thu, 21 Oct 2010 11:23:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.566
X-Spam-Level:
X-Spam-Status: No, score=-6.566 tagged_above=-999 required=5 tests=[AWL=0.033, BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Oj5gK2d8SXTx for <nfsv4@core3.amsl.com>; Thu, 21 Oct 2010 11:23:16 -0700 (PDT)
Received: from exprod5og114.obsmtp.com (exprod5og114.obsmtp.com [64.18.0.28]) by core3.amsl.com (Postfix) with SMTP id E094F3A6A58 for <nfsv4@ietf.org>; Thu, 21 Oct 2010 11:23:15 -0700 (PDT)
Received: from source ([67.152.220.89]) by exprod5ob114.postini.com ([64.18.4.12]) with SMTP ID DSNKTMCFdFn++PaMsxbHhsx0bAFXdQREugIx@postini.com; Thu, 21 Oct 2010 11:24:52 PDT
Received: from fs1.bhalevy.com ([172.17.33.139]) by daytona.int.panasas.com with Microsoft SMTPSVC(6.0.3790.3959); Thu, 21 Oct 2010 14:24:50 -0400
Message-ID: <4CC08571.10203@panasas.com>
Date: Thu, 21 Oct 2010 20:24:49 +0200
From: Benny Halevy <bhalevy@panasas.com>
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.9) Gecko/20100921 Fedora/3.1.4-1.fc13 Thunderbird/3.1.4
MIME-Version: 1.0
To: sfaibish <sfaibish@emc.com>
References: <op.vkxrtzyxunckof@usensfaibisl2e.eng.emc.com> <20101021181922.GC10192@fieldses.org>
In-Reply-To: <20101021181922.GC10192@fieldses.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
X-OriginalArrivalTime: 21 Oct 2010 18:24:51.0212 (UTC) FILETIME=[401AF4C0:01CB714D]
Cc: "J. Bruce Fields" <bfields@fieldses.org>, nfsv4 list <nfsv4@ietf.org>
Subject: Re: [nfsv4] Disk protection problem for pNFS block
X-BeenThere: nfsv4@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: NFSv4 Working Group <nfsv4.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/nfsv4>, <mailto:nfsv4-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/nfsv4>
List-Post: <mailto:nfsv4@ietf.org>
List-Help: <mailto:nfsv4-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/nfsv4>, <mailto:nfsv4-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 21 Oct 2010 18:23:17 -0000

On 2010-10-21 20:19, J. Bruce Fields wrote:
> On Thu, Oct 21, 2010 at 01:21:25PM -0400, sfaibish wrote:
>> I want to discuss this issue in preparation for the WG discussion on
>> this topic. In the current pNFS block protocol the client has to
>> contact the MDS in order to get the signature offset of the devices
>> used by the block client.
>>
>> Users of pNFS block in Linux want to be able to identify a LUN being used
>> to store pNFS data without having to contact the metadata server but the

You mean before sending GETDEVICELIST and GETDEVICEINFO?

>> protocol doesn't define a fixed location; the MDS will send it at mount
>> time. 

The mount time thing is linux client specific actually.
The client can issue GETDEVICELIST and GETDEVICEINFO at any time.

>> The location of the signature is not defined in the protocol but

Hmm, now I'm confused too :-/
http://tools.ietf.org/html/rfc5663
2.2.  GETDEVICELIST and GETDEVICEINFO

2.2.1.  Volume Identification

   /// struct pnfs_block_sig_component4 { /* disk signature component */
   ///     int64_t bsc_sig_offset;        /* byte offset of component
   ///                                       on volume*/
   ///     opaque  bsc_contents<>;        /* contents of this component
   ///                                       of the signature */
   /// };

Benny

>> we can make it a configuration parameter in the client that will define
>> the signature location for each pNFS block server. My prefered solution
>> would be to enhance the block protocol.
>>
>> In more details the pNFS FS writes a signature to the LUN, but to find
>> out the offset of the signature the client first needs to talk with the
>> MDS to be told the offset that the signature is located when using
>> GETDEVICEINFO. But this is too late and can only be done after the boot
>> ends and as a result some boot time applications can destroy the FS.
> 
> I'm confused: you're assuming such applications may write to every disk
> they discover that isn't on some list of disks not to touch?
> 
> The pnfs block protocol has to assume *some* level of sanity from
> clients.
> 
> --b.
> 
>> One
>> possible solution is to "hide" pNFS devices or write protect the devices
>> that contain pNFS data even if that host doesn't mount the pNFS
>> block volume.
>>
>> The concern was that there is a window of time before the devices can be
>> protected at mount time but it leaves a window of possible data corruption.
>> I would also like to include some kind of protection mechanism in
>> the protocol
>> as an extenssion to RFS5663 for example. So Jason and I propose
>> something like
>> this:
>>
>> 1) Clients can have configuration file that specifies the signatures
>> to protect.
>>    The signature should be vendor agnostic: "pNFS block device" but
>> at a fixed offset.
>> 2) Clients could come pre-configured with a protection file that recognizes
>>    "most signatures"
>> 3) pNFS servers could define a function that will return such signatures.
>>    It will be late, but every time one does a mount, the client
>> could retrieve
>>    the signatures, and then make sure that they are listed in the
>> configuration
>>    file.  This way the system learns what it needs to protect in
>> cases where a
>>    new non-standard pNFS server is introduced.
>>
>> What do people think about the problem and the solution idea? I will
>> collect
>> all the opinion and include in the discussion in Beijing. Thank you
>> for your
>> consideration
>>
>> /Sorin
>>
>>
>> -- 
>> Best Regards
>>
>> Sorin Faibish
>> Corporate Distinguished Engineer
>> Unified Storage Division
>>         EMC²
>> where information lives
>>
>> Phone: 508-249-5745
>> Cellphone: 617-510-0422
>> Email : sfaibish@emc.com
>> _______________________________________________
>> nfsv4 mailing list
>> nfsv4@ietf.org
>> https://www.ietf.org/mailman/listinfo/nfsv4
> _______________________________________________
> nfsv4 mailing list
> nfsv4@ietf.org
> https://www.ietf.org/mailman/listinfo/nfsv4