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ı
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)
DNS iletme ve geriye doğru arama bölgesi için DNS sunucusuna NFS istemci kaydını 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)]
Paketleri yükleme:
yum update
sudo yum -y install realmd sssd adcli samba-common krb5-workstation chrony nfs-utils
NTP istemcisini yapılandırın.
RHEL 8 varsayılan olarak kroni kullanır.
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.conf
sağ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
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.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:
NFSv4.1 Kerberos şifrelemesi kullanıyorsanız RHEL 8 yapılandırmasında açıklanan tüm adımları tamamlayın.
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
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 ayarlanmazldap
ad
.- Yapılandırma arama temellerini ve aramalar için kullanıcı ve grup sınıflarını belirtti.
ldap_sasl_authid
, içindenklist -kte
makine hesabı adıdır.use_fully_qualified_names
olarak ayarlanırfalse
. 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 olarakfalse
değ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ırad
.ldap_id_mapping
olarak ayarlanırtrue
. 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ğerifalse
olarak ayarlayabilirsiniz. Değeri istemci yapılandırmanıza göre belirleyebilirsiniz.use_fully_qualified_names
true
. Bu ayar, bu yapılandırmayı kullanacağı anlamına geliruser@CONTOSO.COM
.
Girdinizin
/etc/nsswitch.conf
olduğundansss
emin olun:cat /etc/nsswitch.conf
passwd: sss files systemd
group: sss files systemd
netgroup: sss files
sssd
Hizmeti yeniden başlatın ve önbelleği temizleyin:service sssd stop
rm -f /var/lib/sss/db/*
service sssd start
İ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
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>
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)]
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.COM
büyük harf kullanarak).Hizmeti
rpc-gssd.service
yeniden başlatın:sudo systemctl start rpc-gssd.service
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.
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"
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:
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
Dosyanızda
/etc/nsswitch.conf
aşağıdakildap
girdilerin olduğundan emin olun:
passwd: compat systemd ldap
group: compat systemd ldap
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.
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.
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.
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"
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.