Azure NetApp Files için NFS istemcisini yapılandırma

Bu makalede açıklanan NFS istemci yapılandırması, NFSv4.1 Kerberos şifrelemesini yapılandırdığınızda veya LDAP ile bir çift protokol birimi veya NFSv3/NFSv4.1 oluşturduğunuzda kurulumun bir parçasıdır. Azure NetApp Files ile çok çeşitli Linux dağıtımları kullanılabilir. Bu makalede, daha yaygın olarak kullanılan iki ortam için yapılandırmalar açıklanmaktadır: RHEL 8 ve Ubuntu 18.04.

Gereksinimler ve dikkat edilmesi gerekenler

Kullandığınız Linux çeşitlerinden bağımsız olarak aşağıdaki yapılandırmalar gereklidir:

  • Zaman dengesizliğiyle ilgili sorunları önlemek için bir NTP istemcisi yapılandırın.
  • Ad çözümlemesi için Linux istemcisinin DNS girişlerini yapılandırın.
    Bu yapılandırmada "A" (ileri) kaydı ve PTR (ters) kaydı bulunmalıdır.
  • Etki alanına katılma için hedef Active Directory'de Linux istemcisi için bir bilgisayar hesabı oluşturun (bölge birleştirme komutu sırasında oluşturulur).

    Dekont

    Aşağıdaki komutlarda kullanılan değişken, $SERVICEACCOUNT hedeflenen Kuruluş Birimi'nde bilgisayar hesabı oluşturmak için izinleri veya temsilcisi olan bir kullanıcı hesabı olmalıdır.

RHEL 8 yapılandırması

Bu bölümde NFSv4.1 Kerberos şifrelemesi ve çift protokol için gereken RHEL yapılandırmaları açıklanmaktadır.

Bu bölümdeki örneklerde aşağıdaki etki alanı adı ve IP adresi kullanılır:

  • Etki alanı adı: contoso.com
  • Özel IP: 10.6.1.4

NFSv4.1 Kerberos şifrelemesi kullanıyorsanız RHEL 8 yapılandırması

  1. Uygun DNS sunucusuyla yapılandırın /etc/resolv.conf .

    Örneğin:

    [root@reddoc cbs]# cat /etc/resolv.conf
    search contoso.com
    nameserver 10.6.1.4(private IP)

  2. DNS iletme ve geriye doğru arama bölgesi için DNS sunucusuna NFS istemci kaydını ekleyin.

  3. DNS'yi doğrulamak için NFS istemcisinden aşağıdaki komutları kullanın:

    # nslookup [hostname/FQDN of NFS client(s)]
    # nslookup [IP address of NFS client(s)]

  4. Paketleri yükleme:

    yum update
    sudo yum -y install realmd sssd adcli samba-common krb5-workstation chrony nfs-utils

  5. NTP istemcisini yapılandırın.

    RHEL 8 varsayılan olarak kroni kullanır.

  6. Active Directory etki alanına katılın:

    sudo realm join $DOMAIN.NAME -U $SERVICEACCOUNT --computer-ou="OU=$YOUROU"

    Örneğin:

    sudo realm join CONTOSO.COM -U ad_admin --computer-ou="CN=Computers"

    öğesinin default_realm içinde /etc/krb5.confsağlanan bölge olarak ayarlandığından emin olun. Aksi takdirde, aşağıdaki örnekte gösterildiği gibi dosyadaki bölümün altına [libdefaults] ekleyin:

    [libdefaults]
        default_realm = CONTOSO.COM
        default_tkt_enctypes = aes256-cts-hmac-sha1-96
        default_tgs_enctypes = aes256-cts-hmac-sha1-96
        permitted_enctypes = aes256-cts-hmac-sha1-96
    [realms]
        CONTOSO.COM = {
            kdc = dc01.contoso.com
            admin_server = dc01.contoso.com
            master_kdc = dc01.contoso.com
            default_domain = contoso.com
        }
    [domain_realm]
        .contoso.com = CONTOSO.COM
        contoso.com = CONTOSO.COM
    [logging]
        kdc = SYSLOG:INFO
        admin_server = FILE=/var/kadm5.log
    
  7. Tüm NFS hizmetlerini yeniden başlatın:

    systemctl start nfs-*
    systemctl restart rpc-gssd.service

    Yeniden başlatma, Kerberos bağlaması sırasında hata koşulunu “mount.nfs: an incorrect mount option was specified” engeller.

  8. kinit Bilet almak için kullanıcı hesabıyla komutunu çalıştırın:

    sudo kinit $SERVICEACCOUNT@DOMAIN

    Örneğin:

    sudo kinit ad_admin@CONTOSO.COM

çift protokol kullanıyorsanız RHEL 8 yapılandırması

Aşağıdaki adımlar isteğe bağlıdır. Adımları yalnızca NFS istemcisinde kullanıcı eşlemesi kullanıyorsanız gerçekleştirmeniz gerekir:

  1. NFSv4.1 Kerberos şifrelemesi kullanıyorsanız RHEL 8 yapılandırmasında açıklanan tüm adımları tamamlayın.

  2. SSSD yapılandırma dosyasındaKI IP adresini kullanmak yerine AD'niz için tam etki alanı adı (FQDN) kullanmak üzere /etc/hosts dosyanıza statik bir DNS kaydı ekleyin:

    cat /etc/hosts
    10.6.1.4 winad2016.contoso.com

  3. AD LDAP sunucusundan tanımlayıcıları çözümlemek için etki alanları için ek bir bölüm ekleyin:

    [root@reddoc cbs]# cat /etc/sssd/sssd.conf
    [sssd]
    domains = contoso.com, contoso-ldap (new entry added for LDAP as id_provider)
    config_file_version = 2
    services = nss, pam, ssh, sudo (ensure nss is present in this list)

    [domain/contoso-ldap] (Copy the following lines. Modify as per your domain name.)
    auth_provider = krb5
    chpass_provider = krb5
    id_provider = ldap
    ldap_search_base = dc=contoso,dc=com(your domain)
    ldap_schema = rfc2307bis
    ldap_sasl_mech = GSSAPI
    ldap_user_object_class = user
    ldap_group_object_class = group
    ldap_user_home_directory = unixHomeDirectory
    ldap_user_principal = userPrincipalName
    ldap_account_expire_policy = ad
    ldap_force_upper_case_realm = true
    ldap_user_search_base = cn=Users,dc=contoso,dc=com (based on your domain)
    ldap_group_search_base = cn=Users,dc=contoso,dc=com (based on your domain)
    ldap_sasl_authid = REDDOC$ (ensure $ at the end you can get this from “klist -kte” command)
    krb5_server = winad2016.contoso.com (same as AD address which is added in /etc/hosts)
    krb5_realm = CONTOSO.COM (domain name in caps)
    krb5_kpasswd = winad2016.contoso.com (same as AD address which is added in /etc/hosts)
    use_fully_qualified_names = false

    Yukarıdaki yapılandırmada [domain/contoso-ldap] :

    • id_provider olarak ayarlanır ve olarak ayarlanmaz ldap ad.
    • Yapılandırma arama temellerini ve aramalar için kullanıcı ve grup sınıflarını belirtti.
    • ldap_sasl_authid , içinden klist -ktemakine hesabı adıdır.
    • use_fully_qualified_names olarak ayarlanır false. Bu ayar, kısa bir ad kullanıldığında bu yapılandırmanın kullanıldığı anlamına gelir.
    • ldap_id_mapping BELIRTİlMİSİDİr ve varsayılan olarak falsedeğeri olarak belirtilir.

    Yapılandırma realm join istemci tarafından oluşturulur ve şöyle görünür:

    [domain/contoso.com] (Do not edit or remove any of the following information. This information is automatically generated during the realm join process.)
    ad_domain = contoso.com
    krb5_realm = CONTOSO.COM
    realmd_tags = manages-system joined-with-adcli
    cache_credentials = True
    id_provider = ad
    krb5_store_password_if_offline = True
    default_shell = /bin/bash
    ldap_id_mapping = True
    use_fully_qualified_names = True
    fallback_homedir = /home/%u@%d
    access_provider = ad

    Yukarıdaki yapılandırmada [domain/contoso.com] :

    • id_provider olarak ayarlanır ad.
    • ldap_id_mapping olarak ayarlanır true. SSSD tarafından oluşturulan kimlikleri kullanır. Alternatif olarak, TÜM kullanıcı adı stilleri için POSIX UID'lerini kullanmak istiyorsanız bu değeri false olarak ayarlayabilirsiniz. Değeri istemci yapılandırmanıza göre belirleyebilirsiniz.
    • use_fully_qualified_namestrue. Bu ayar, bu yapılandırmayı kullanacağı anlamına gelir user@CONTOSO.COM .
  4. Girdinizin /etc/nsswitch.conf olduğundan sss emin olun:

    cat /etc/nsswitch.conf
    passwd: sss files systemd
    group: sss files systemd
    netgroup: sss files

  5. sssd Hizmeti yeniden başlatın ve önbelleği temizleyin:

    service sssd stop
    rm -f /var/lib/sss/db/*
    service sssd start

  6. İstemcinizin LDAP sunucusuyla tümleştirildiğinden emin olmak için test edin:

    [root@red81 cbs]# id ldapuser1
    uid=1234(ldapuser1) gid=1111(ldapgroup1) groups=1111(ldapgroup1)

Ubuntu yapılandırması

Bu bölümde NFSv4.1 Kerberos şifrelemesi ve çift protokol için gereken Ubuntu yapılandırmaları açıklanmaktadır.

Bu bölümdeki örneklerde aşağıdaki etki alanı adı ve IP adresi kullanılır:

  • Etki alanı adı: contoso.com
  • Özel IP: 10.6.1.4
  1. Uygun DNS sunucusuyla yapılandırın /etc/resolv.conf :

    root@ubuntu-rak:/home/cbs# cat /etc/resolv.conf
    search contoso.com
    nameserver <private IP address of DNS server>

  2. DNS iletme ve geriye doğru arama bölgesi için DNS sunucusuna NFS istemci kaydı ekleyin.

    DNS'yi doğrulamak için NFS istemcisinden aşağıdaki komutları kullanın:

    # nslookup [hostname/FQDN of NFS client(s)]
    # nslookup [IP address of NFS client(s)]

  3. Paketleri yükleme:

    apt-get update
    apt-get install -y realmd packagekit sssd adcli samba-common chrony krb5-user nfs-common

    İstendiğinde, varsayılan Kerberos bölgesi olarak giriş $DOMAIN.NAME yapın (örneğin, CONTOSO.COMbüyük harf kullanarak).

  4. Hizmeti rpc-gssd.serviceyeniden başlatın:

    sudo systemctl start rpc-gssd.service

  5. Ubuntu 18.04 varsayılan olarak kroni kullanır. Ubuntu Bionic'teki yapılandırma yönergelerini izleyerek: NTP'yi yapılandırmak için chrony kullanma.

  6. Active Directory etki alanına katılın:

    sudo realm join $DOMAIN.NAME -U $SERVICEACCOUNT --computer-ou="OU=$YOUROU"

    Örneğin:
    sudo realm join CONTOSO.COM -U ad_admin --computer-ou="CN=Computers"

  7. Bilet almak için kullanıcıyla birlikte gerçekleştirin kinit :

    sudo kinit $SERVICEACCOUNT

    Örneğin:
    sudo kinit ad_admin

çift protokol kullanıyorsanız Ubuntu yapılandırması

Aşağıdaki adımlar isteğe bağlıdır. Adımları yalnızca NFS istemcisinde kullanıcı eşlemesini kullanmak istiyorsanız gerçekleştirmeniz gerekir:

  1. Yüklü paketleri yükseltmek için aşağıdaki komutu çalıştırın:
    sudo apt update && sudo apt install libnss-ldap libpam-ldap ldap-utils nscd

    Aşağıdaki örnekte örnek değerler kullanılmaktadır. Komut sizden giriş isteyip istemediğinizi sorarsa ortamınıza göre giriş sağlamanız gerekir.

    base dc=contoso,dc=com uri ldap://10.20.0.4:389/ ldap_version 3 rootbinddn cn=admin,cn=Users,dc=contoso,dc=com pam_password ad

  2. Dosyanızda /etc/nsswitch.conf aşağıdaki ldap girdilerin olduğundan emin olun:
    passwd: compat systemd ldap
    group: compat systemd ldap

  3. Hizmeti yeniden başlatmak ve etkinleştirmek için aşağıdaki komutu çalıştırın:

    sudo systemctl restart nscd && sudo systemctl enable nscd

Aşağıdaki örnek, BIR LDAP kullanıcısı ‘hari1’için Ubuntu LDAP istemcisinden AD LDAP sunucusunu sorgular:

root@cbs-k8s-varun4-04:/home/cbs# getent passwd hari1
hari1:*:1237:1237:hari1:/home/hari1:/bin/bash

NFSv4.1 birimlerine erişmek için aynı konak adına sahip iki VM yapılandırma

Bu bölümde, Azure NetApp Files NFSv4.1 birimlerine erişmek için aynı konak adına sahip iki VM'yi nasıl yapılandırabileceğiniz açıklanmaktadır. Bu yordam, olağanüstü durum kurtarma (DR) testi gerçekleştirdiğinizde ve birincil DR sistemiyle aynı konak adına sahip bir test sistemi gerektirdiğinde yararlı olabilir. Bu yordam yalnızca aynı Azure NetApp Files birimlerine erişen iki VM'de aynı ana bilgisayar adına sahip olduğunuzda gereklidir.

NFSv4.x, her istemcinin kendisini benzersiz bir dizeye sahip sunuculara tanımlamasını gerektirir. Bir istemci ile bir sunucu arasında paylaşılan dosya açma ve kilitleme durumu bu kimlikle ilişkilendirilir. Sağlam NFSv4.x durum kurtarma ve saydam durum geçişlerini desteklemek için bu kimlik dizesinin istemci yeniden başlatmalarında değişmemesi gerekir.

  1. Aşağıdaki komutu kullanarak dizeyi nfs4_unique_id VM istemcilerinde görüntüleyin:

    # systool -v -m nfs | grep -i nfs4_unique
    nfs4_unique_id = ""

    Aynı birimi, örneğin DR sistemi gibi aynı konak adına sahip ek bir VM'ye bağlamak için, kendisini Azure NetApp Files NFS hizmetine benzersiz olarak tanımlayabilmesi için bir nfs4_unique_id oluşturun. Bu adım, hizmetin aynı konak adına sahip iki VM'yi ayırt etmesini ve her iki VM'de de NFSv4.1 birimlerini bağlamasını sağlar.

    Bu adımı yalnızca test DR sisteminde gerçekleştirmeniz gerekir. Tutarlılık için, ilgili her sanal makineye benzersiz bir ayar uygulamayı düşünebilirsiniz.

  2. Test DR sisteminde, dosyasına genellikle içinde /etc/modprobe.d/bulunan aşağıdaki satırı nfsclient.conf ekleyin:

    options nfs nfs4_unique_id=uniquenfs4-1

    Hizmete bağlanacak VM'ler arasında benzersiz olduğu sürece dize uniquenfs4-1 herhangi bir alfasayısal dize olabilir.

    NFS istemci ayarlarını yapılandırma hakkında dağıtımınızın belgelerine bakın.

    Değişikliğin etkili olması için VM'yi yeniden başlatın.

  3. Test DR sisteminde, VM yeniden başlatıldıktan sonra ayarlandığını doğrulayın nfs4_unique_id :

    # systool -v -m nfs | grep -i nfs4_unique
    nfs4_unique_id = "uniquenfs4-1"

  4. NFSv4.1 birimini her iki VM'ye de normal şekilde bağlayın.

    Aynı konak adına sahip her iki VM de artık NFSv4.1 birimine bağlanabilir ve bu birime erişebilir.

Sonraki adımlar