Nfs sharing windows server

Как подключить NFS каталог в Windows 10

В Unix-подобных операционных системах подключить каталога NFS (Network File System) довольно просто, однако если вам понадобится использовать NFS шару в Windows, придется выполнить ряд дополнительных действий. В этой статье мы покажем, как в Windows 10 подключить NFS каталог, который находинся на UNIX системе. Все описанные инструкции будут работать в Windows 10 Pro (версия 10.0.14393 и выше).

Установка клиента NFS (службы для NFS)

В первую очередь в Windows 10 нужно установить клиент NFS. Для установки необходимо выполнить следующие шаги:

  1. Откройте раздел «Programs and Features».
  2. Щелкните по пункту «Turn Windows features on or off».
  3. В появившемся списке в разделе Services for NFS включите NFS клиента (Client for NFS), а затем нажмите «ОК».
  4. После установки нажмите кнопку «Close» и вернитесь на рабочий стол.

Как разрешить запись в NFS каталог анонимному пользователю

По умолчанию при подключении NFS каталога с UNIX системы, анонимному пользователю (anonymous) предоставляются права только на чтение. Чтобы предоставить анонимным пользователям право записи, необходимо изменить значения UID и GID, которые используются для монтирования NFS каталога в Windows. Пример стандартных настроек представлен на рисунке ниже.

Чтобы изменить значение полей UID и GID, нам потребуется внести изменения в реестр Windows.

  1. Откройте редактор реестра regedit.
  2. Перейдите в ветку реестра — HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default.
  3. В каталоге «Default» создайте новый параметр типа DWORD (32бит) с именем AnonymousUid и назначьте UID, назначенный на каталог в UNIX, к которому открыт доступ через NFS.
  4. В ветке Default создайте ещё один параметр DWORD (32-бит) с именем AnonymousGid и назначьте GID, назначенный данному каталогу в UNIX.

  • Для того, чтобы изменения вступили в силу вам необходимо перезапустить клиент NFS или перезагрузить компьютер.
  • Список подключенных NFS каталогов и параметры монтирования можно вывести с помощью команды Mount без параметров.

    Результат работы команды mount теперь должен выглядеть следующим образом:

    Local Remote Properties
    ——————————————————————————-
    Z: \\10.1.1.211\mnt\vms UID=0, GID=0
    rsize=1078756, wsize=1078756
    mount=soft, timeout=1.6
    retry=1, locking=yes
    fileaccess=755, lang=ANSI
    casesensitive=no
    sec=sys

    Обратите внимание на значение полей UID и GID, которое равно 0. UID=0, GID=0 — означает, что общий ресурс монтируется под пользователем root.

    Как подключить NFS каталог в Windows 10

    Смонтировать NFS каталог в Windows 10 можно с помощью команды mount. Например, смонтируем NFS каталог и назначим ему букву диска Z:. Предположим, что ваше NAS устройство находится в той же сети, что и ваш компьютер с установленной операционной системы Windows, а IP-адрес устройства — 10.1.1.211. С помощью следующей команды можно смонтировать общий ресурс NFS в /mnt/vms.

    Mount –o anon \\10.1.1.211\mnt\vms Z:

    Z: is now successfully connected to \\10.1.1.211\mnt\vms
    The command completed successfully .

    Теперь общий ресурс создан, и мы можем получить доступ к данным. В нашем примере сетевой ресурс (диск) обозначается буквой «Z».

    На этом настройка NFS завершена и вы сможете сохранять данные на свое NAS устройство через смонтированный NFS каталог. Обратите внимание, что при в первый раз открытие этого каталога выполняется довольно долго.

    New-Nfs Share

    Creates an NFS file share.

    Syntax

    Description

    The New-NfsShare cmdlet creates a Network File System (NFS) file share. To create a share, you must specify a name and a path. If you do not use the optional parameters for this cmdlet, New-NfsShare assigns default values for these share settings.

    If you specify a path to a clustered disk for a new NFS share, this cmdlet creates a highly available clustered share. You can use the NetworkName parameter to scope a share to a specified network name. The network name must belong to the same resource group as the clustered disk. If you do not specify the network name, New-NfsShare assigns an arbitrary network name that is available in the same resource group to scope the share.

    Examples

    Example 1: Create an NFS share for a folder

    This command creates an NFS share named NFSshare01 for sharing the folder C:\shares\NFSshare01.

    Example 2: Create an NFS share that has unmapped access

    This command creates an NFS share named NFSshare01 for sharing the folder C:\shares\ NFSshare01. This command enables unmapped access on the new share and configures Krb5 and Krb5i authentication on the share.

    Parameters

    Grants the UNIX root user access to a share.

    Type: Boolean
    Position: 9
    Default value: None
    Accept pipeline input: True
    Accept wildcard characters: False

    Specifies the group identifier (GID) that Server for NFS uses for anonymous users who access an NFS share.

    Type: Int32
    Aliases: AnonGid
    Position: 5
    Default value: -2
    Accept pipeline input: True
    Accept wildcard characters: False

    Specifies the user identifier (UID) that Server for NFS uses for anonymous users who access an NFS share.

    Type: Int32
    Aliases: AnonUid
    Position: 4
    Default value: -2
    Accept pipeline input: True
    Accept wildcard characters: False

    Indicates that this cmdlet runs the command as a background job on a remote computer. Use this parameter to run commands that take an extensive time to finish.

    When you use the AsJob parameter, the command returns an object that represents the job, and then displays the command prompt. You can continue to work in the session while the job finishes. To manage the job, use the Job cmdlets. To get the job results, use the Receive-Job cmdlet.

    The AsJob parameter resembles using the Invoke-Command cmdlet to run a Start-Job command remotely. However, with AsJob, the job is created on the local computer, even though the job runs on a remote computer, and the results of the remote job are automatically returned to the local computer.

    For more information about Windows PowerShell background jobs, see about_Jobs and about_Remote_Jobs.

    Type: SwitchParameter
    Position: Named
    Default value: None
    Accept pipeline input: False
    Accept wildcard characters: False

    Specifies an array of authentication types that an NFS client can use to access NFS shares. The acceptable values for this parameter are:

    — Sys (AUTH_SYS authentication)

    • Krb5 (Kerberos v5 authentication)
    • Krb5i (Kerberos v5 authentication with integrity checking)
    • Krb5p (Kerberos v5 authentication with privacy)
    • All
    • Default

    If you specify All, Server for NFS configures Sys, Krb, Krbi, and Krbp on the share. If you specify Default, Server for NFS configures Sys, Krb, and Krbi on the share.

    Type: String [ ]
    Aliases: af, auth
    Accepted values: sys, krb5, krb5i, krb5p, all, default
    Position: 3
    Default value: Default
    Accept pipeline input: True
    Accept wildcard characters: False

    Runs the cmdlet in a remote session or on a remote computer. Enter a computer name or a session object, such as the output of a New-CimSession or Get-CimSession cmdlet. The default is the current session on the local computer.

    Type: CimSession [ ]
    Aliases: Session
    Position: Named
    Default value: None
    Accept pipeline input: False
    Accept wildcard characters: False

    Prompts you for confirmation before running the cmdlet.

    Type: SwitchParameter
    Aliases: cf
    Position: Named
    Default value: False
    Accept pipeline input: False
    Accept wildcard characters: False

    Configures an NFS share to allow anonymous users to access it.

    Type: Boolean
    Aliases: anon, AnonymousAccess
    Position: 7
    Default value: None
    Accept pipeline input: True
    Accept wildcard characters: False

    Configures an NFS share to allow unmapped UNIX users to access a share by using the UID or GID.

    Type: Boolean
    Aliases: unmapped, UnmappedAccess
    Position: 8
    Default value: None
    Accept pipeline input: True
    Accept wildcard characters: False

    Specifies language encoding to configure on an NFS share. You can use only one language on the share.

    The acceptable values for this parameter are:

    • Euc-jp (Japanese)
    • Euc-tw (Chinese)
    • Euc-kr (Korean)
    • Shift-jis (Japanese)
    • Big5 (Chinese)
    • Ksc5601 (Korean)
    • Gb2312-80 (Simplified Chinese)
    • Ansi
    Type: String
    Aliases: lang, encoding
    Accepted values: euc-jp, euc-tw, euc-kr, shift-jis, big5, ksc5601, gb2312-80, ansi
    Position: 6
    Default value: Ansi
    Accept pipeline input: True
    Accept wildcard characters: False

    Specifies the name of the NFS share to create.

    Type: String
    Aliases: ShareName
    Position: 0
    Default value: None
    Accept pipeline input: True
    Accept wildcard characters: False

    Specifies the network name of a share.

    For a local share, the network name is the host name. For a server cluster, the network name is the network name in the resource group to which the share is scoped.

    This parameter is not required when you create a local share. In the case of a server cluster, specify the client access point. If you do not specify a network name, New-NfsShare assigns a network name that belongs to the same resource group by default.

    Type: String
    Aliases: netname
    Position: 2
    Default value: None
    Accept pipeline input: True
    Accept wildcard characters: False

    Specifies the path of a new NFS share.

    Type: String
    Aliases: SharePath
    Position: 1
    Default value: None
    Accept pipeline input: True
    Accept wildcard characters: False

    Configures the type of global («All Machines») permissions on the NFS share. The acceptable values for this parameter are:

    • Readwrite
    • Readonly
    • No-access
    Type: String
    Aliases: access
    Accepted values: no-access, readonly, readwrite
    Position: 10
    Default value: No-access
    Accept pipeline input: True
    Accept wildcard characters: False

    Specifies the maximum number of concurrent operations that can be established to run the cmdlet. If this parameter is omitted or a value of 0 is entered, then Windows PowerShellВ® calculates an optimum throttle limit for the cmdlet based on the number of CIM cmdlets that are running on the computer. The throttle limit applies only to the current cmdlet, not to the session or to the computer.

    Type: Int32
    Position: Named
    Default value: None
    Accept pipeline input: False
    Accept wildcard characters: False

    Shows what would happen if the cmdlet runs. The cmdlet is not run.

    How to mount a an NFS Share in Windows Server 2019

    I have recently been testing and working through some scenarios where I require the NFS client on a Windows machine to access some NAS shares over the NFS protocol, not much has changed I believe between Windows Server 2016 and Windows Server 2019 but thought it might help some to see how easy it is to get going.

    I am picking up at this stage with my fully patched and ready to go Windows Server running 2019. As mentioned previously I want to use this machine to access my NFS share which doesn’t matter what it is or what it is for but this Windows machine is running in Microsoft Azure and I am access Azure NetApp Files over the NFS protocols, Azure NetApp Files can be presented over both NFS and SMB and I will have additional posts about this later.

    Installing the Client for NFS

    I am pretty sure this could also be achieved through the system manager and selecting the Add Features dialog and working through the wizard approach, I have been purposely doing a lot more of my tasks through PowerShell so that I can re-use and make my tasks quicker, this is something I have picked up from my learnings around Infrastructure as Code. For that reason, I am using PowerShell. I am sure someone else had documented the process through the system manager and UI.

    First of all, let’s see what NFS based features we have available to us by running the below command.

    Get-WindowsFeature -Name NFS*

    As you can see from the image above, we have one feature available to us, “Client for NFS” by installing this it will allow us to mount NFS exports to our Windows machine so we can access the data within.

    To install this feature run the following command.

    Install-WindowsFeature -Name NFS-Client

    That’s it, it’s that simple, hardly not worth mentioning. That’s the NFS Client installed on our machine, next we need to make sure from the NAS server point of view that the IP address of this windows machine can access that data.

    As I said before I am using Azure NetApp Files, this export is configured in the following screen when configuring Azure NetApp Files. I will provide a step by step walkthrough of this process after this initial post.

    As you can see from the above, I have allowed all clients from all subnets using the export policy (This is the default setting for ANF), my advice is that if this was production you should to create more secure export policies.

    Mounting the share

    Now we have our NFS Client and we have our export policy from whichever NAS device you are looking to mount onto your Windows, next we actually need to mount the share for use.

    Some people will ask now, why you are using NFS when you can use SMB, certain applications, certain environments may require this method and protocol. If this was a traditional Windows environment and this share was going to house predominately user shares and home drives, then absolutely the way to do this would most likely be with the SMB protocol.

    Next up is open up a command prompt with Administrator privileges, the mount command is going to be the command you use and then you will be using the NAS IP Address followed by the share name and then which letter you would like to mount this to on your Windows system.

    Mount 10.1.1.4:/vZillaANFShare n:

    Providing you have the correct configuration, mostly down to the export policy on your NAS device then this process should take seconds. And then by seeing the success message as per above but then checking this now as a mapped network drive as per below.

    Quick post hope that it is useful for somebody. This was something I was working on so that I could test Azure NetApp Files without access to Azure Active Directory services (due to corporate policy) this stopped me from being able to use SMB but allowed me to test the functionality via NFS on Windows and Ubuntu.

    Justin Parisi did a great blog on this at the start of the year – Windows NFS? WHO DOES THAT.

    Читайте также:  Change profile path windows 10
    Оцените статью