Konfigurace klienta NFS pro Azure NetApp Files
Konfigurace klienta NFS popsaná v tomto článku je součástí nastavení při konfiguraci šifrování Kerberos NFSv4.1 nebo vytvoření svazku s duálním protokolem nebo NFSv3/NFSv4.1 s protokolem LDAP. Pro použití se službou Azure NetApp Files je k dispozici široká škála linuxových distribucí. Tento článek popisuje konfigurace pro dvě z běžně používaných prostředí: RHEL 8 a Ubuntu 18.04.
Požadavky a důležité informace
Bez ohledu na to, kterou variantu Linuxu používáte, jsou vyžadovány následující konfigurace:
- Nakonfigurujte klienta NTP, aby nedocházelo k problémům se nerovnoměrnou distribuci času.
- Nakonfigurujte položky DNS klienta Linuxu pro překlad názvů.
Tato konfigurace musí obsahovat záznam "A" (forward) a záznam PTR (reverse). - Pro připojení k doméně vytvořte účet počítače pro klienta s Linuxem v cílové službě Active Directory (který se vytvoří během příkazu připojení k sférě).
Poznámka:
Proměnná
$SERVICEACCOUNT
použitá v následujících příkazech by měla být uživatelským účtem s oprávněními nebo delegování k vytvoření účtu počítače v cílové organizační jednotce.
Konfigurace RHEL 8
Tato část popisuje konfigurace RHEL vyžadované pro šifrování Kerberos NFSv4.1 a duální protokol.
Příklady v této části používají následující název domény a IP adresu:
- Název domény:
contoso.com
- Privátní IP adresa:
10.6.1.4
Konfigurace RHEL 8, pokud používáte šifrování Kerberos NFSv4.1
Nakonfigurujte
/etc/resolv.conf
správný server DNS.Příklad:
[root@reddoc cbs]# cat /etc/resolv.conf
search contoso.com
nameserver 10.6.1.4(private IP)
Přidejte záznam klienta SYSTÉMU SOUBORŮ NFS na server DNS pro zónu předávání a zpětného vyhledávání DNS.
K ověření DNS použijte následující příkazy z klienta systému souborů NFS:
# nslookup [hostname/FQDN of NFS client(s)]
# nslookup [IP address of NFS client(s)]
Instalační balíčky:
yum update
sudo yum -y install realmd sssd adcli samba-common krb5-workstation chrony nfs-utils
Nakonfigurujte klienta NTP.
RHEL 8 ve výchozím nastavení používá chrony.
Připojte se k doméně služby Active Directory:
sudo realm join $DOMAIN.NAME -U $SERVICEACCOUNT --computer-ou="OU=$YOUROU"
Příklad:
sudo realm join CONTOSO.COM -U ad_admin --computer-ou="CN=Computers"
Ujistěte se, že
default_realm
je nastavená na zadanou sféru v/etc/krb5.conf
. Pokud ne, přidejte ho do oddílu[libdefaults]
v souboru, jak je znázorněno v následujícím příkladu:[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
Restartujte všechny služby NFS:
systemctl start nfs-*
systemctl restart rpc-gssd.service
Restartování zabraňuje chybovému stavu
“mount.nfs: an incorrect mount option was specified”
během připojení Kerberos.Spuštěním
kinit
příkazu s uživatelským účtem získejte lístky:sudo kinit $SERVICEACCOUNT@DOMAIN
Příklad:
sudo kinit ad_admin@CONTOSO.COM
Konfigurace RHEL 8, pokud používáte duální protokol
Následující kroky jsou volitelné. Tento postup je potřeba provést pouze v případě, že v klientovi NFS používáte mapování uživatelů:
Pokud používáte část šifrování Kerberos NFSv4.1, proveďte všechny kroky popsané v konfiguraci RHEL 8.
Přidejte do souboru /etc/hosts statický záznam DNS pro použití plně kvalifikovaného názvu domény (FQDN) pro vaši službu AD místo použití IP adresy v konfiguračním souboru SSSD:
cat /etc/hosts
10.6.1.4 winad2016.contoso.com
Přidejte další oddíl pro domény pro překlad identifikátorů ze serveru AD LDAP:
[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
[domain/contoso-ldap]
V konfiguraci výše:id_provider
je nastavena naldap
a nikoliad
.- Konfigurace zadala pro vyhledávání základy vyhledávání a třídy uživatelů a skupin.
ldap_sasl_authid
je název účtu počítače zklist -kte
.use_fully_qualified_names
je nastavena nafalse
hodnotu . Toto nastavení znamená, že se tato konfigurace používá při použití krátkého názvu.ldap_id_mapping
není zadáno, což je výchozí hodnotafalse
.
Konfigurace
realm join
se vygeneruje klientem a vypadá takto:[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
[domain/contoso.com]
V konfiguraci výše:id_provider
je nastavena naad
hodnotu .ldap_id_mapping
je nastavena natrue
hodnotu . Používá ID vygenerovaná SSSD. Tuto hodnotufalse
můžete také nastavit, pokud chcete pro všechny styly uživatelských jmen použít identifikátory UŽIVATELSKÉHO rozhraní POSIX. Hodnotu můžete určit na základě konfigurace klienta.use_fully_qualified_names
jetrue
. Toto nastavení znamenáuser@CONTOSO.COM
, že tuto konfiguraci použije.
Ujistěte se, že
sss
položka/etc/nsswitch.conf
obsahuje:cat /etc/nsswitch.conf
passwd: sss files systemd
group: sss files systemd
netgroup: sss files
sssd
Restartujte službu a vymažte mezipaměť:service sssd stop
rm -f /var/lib/sss/db/*
service sssd start
Otestujte, jestli je váš klient integrovaný se serverem LDAP:
[root@red81 cbs]# id ldapuser1
uid=1234(ldapuser1) gid=1111(ldapgroup1) groups=1111(ldapgroup1)
Konfigurace Ubuntu
Tato část popisuje konfigurace Ubuntu vyžadované pro šifrování Kerberos NFSv4.1 a duální protokol.
Příklady v této části používají následující název domény a IP adresu:
- Název domény:
contoso.com
- Privátní IP adresa:
10.6.1.4
Nakonfigurujte
/etc/resolv.conf
správný server DNS:root@ubuntu-rak:/home/cbs# cat /etc/resolv.conf
search contoso.com
nameserver <private IP address of DNS server>
Přidání záznamu klienta SYSTÉMU SOUBORŮ NFS na server DNS pro zónu předávání a zpětného vyhledávání DNS
K ověření DNS použijte následující příkazy z klienta systému souborů NFS:
# nslookup [hostname/FQDN of NFS client(s)]
# nslookup [IP address of NFS client(s)]
Instalační balíčky:
apt-get update
apt-get install -y realmd packagekit sssd adcli samba-common chrony krb5-user nfs-common
Po zobrazení výzvy zadejte jako výchozí sféru Kerberos (
$DOMAIN.NAME
napříkladCONTOSO.COM
velká písmena).Restartujte službu
rpc-gssd.service
:sudo systemctl start rpc-gssd.service
Ubuntu 18.04 používá ve výchozím nastavení chrony. Postupujte podle pokynů konfigurace v Ubuntu Bionic: Použití chrony ke konfiguraci NTP.
Připojte se k doméně služby Active Directory:
sudo realm join $DOMAIN.NAME -U $SERVICEACCOUNT --computer-ou="OU=$YOUROU"
Příklad:
sudo realm join CONTOSO.COM -U ad_admin --computer-ou="CN=Computers"
Pokud chcete získat lístky, proveďte
kinit
s uživatelem:sudo kinit $SERVICEACCOUNT
Příklad:
sudo kinit ad_admin
Konfigurace Ubuntu, pokud používáte duální protokol
Následující kroky jsou volitelné. Tento postup je potřeba provést pouze v případě, že chcete použít mapování uživatelů v klientovi NFS:
Spuštěním následujícího příkazu upgradujte nainstalované balíčky:
sudo apt update && sudo apt install libnss-ldap libpam-ldap ldap-utils nscd
Následující příklad používá ukázkové hodnoty. Když vás příkaz vyzve k zadání, měli byste zadat vstup na základě vašeho prostředí.
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
Ujistěte se, že soubor
/etc/nsswitch.conf
obsahuje následujícíldap
položky:
passwd: compat systemd ldap
group: compat systemd ldap
Spuštěním následujícího příkazu restartujte službu a povolte ji:
sudo systemctl restart nscd && sudo systemctl enable nscd
Následující příklad dotazuje server AD LDAP z klienta Ubuntu LDAP pro uživatele ‘hari1’
LDAP:
root@cbs-k8s-varun4-04:/home/cbs# getent passwd hari1
hari1:*:1237:1237:hari1:/home/hari1:/bin/bash
Konfigurace dvou virtuálních počítačů se stejným názvem hostitele pro přístup ke svazkům NFSv4.1
Tato část vysvětluje, jak nakonfigurovat dva virtuální počítače se stejným názvem hostitele pro přístup ke svazkům Azure NetApp Files NFSv4.1. Tento postup může být užitečný při provádění testu zotavení po havárii (DR) a vyžaduje testovací systém se stejným názvem hostitele jako primární systém zotavení po havárii. Tento postup se vyžaduje jenom v případě, že máte stejný název hostitele na dvou virtuálních počítačích, které přistupují ke stejným svazkům Azure NetApp Files.
NFSv4.x vyžaduje, aby se každý klient identifikoval na servery s jedinečným řetězcem. K této identitě je přidružen stav otevření a uzamčení souboru sdílený mezi jedním klientem a jedním serverem. Aby bylo možné podporovat robustní obnovení stavu NFSv4.x a transparentní migraci stavu, nesmí se tento řetězec identity během restartování klienta měnit.
nfs4_unique_id
Pomocí následujícího příkazu zobrazte řetězec na klientech virtuálních počítačů:# systool -v -m nfs | grep -i nfs4_unique
nfs4_unique_id = ""
Pokud chcete připojit stejný svazek k dalšímu virtuálnímu počítači se stejným názvem hostitele, jako je například systém zotavení po havárii, vytvořte,
nfs4_unique_id
aby se mohl jednoznačně identifikovat ve službě Azure NetApp Files NFS. Tento krok umožňuje službě rozlišovat mezi těmito dvěma virtuálními počítači se stejným názvem hostitele a povolit připojení svazků NFSv4.1 na obou virtuálních počítačích.Tento krok musíte provést pouze v testovacím systému zotavení po havárii. Pro konzistenci můžete zvážit použití jedinečného nastavení na každém zapojeném virtuálním počítači.
V testovacím systému zotavení po havárii přidejte do
nfsclient.conf
souboru následující řádek, obvykle umístěný v/etc/modprobe.d/
:options nfs nfs4_unique_id=uniquenfs4-1
Řetězec
uniquenfs4-1
může být libovolný alfanumerický řetězec, pokud je jedinečný napříč virtuálními počítači, které se mají ke službě připojit.Projděte si dokumentaci k distribuci o tom, jak nakonfigurovat nastavení klienta NFS.
Restartujte virtuální počítač, aby se změna projevila.
V testovacím systému zotavení po havárii ověřte, že
nfs4_unique_id
je nastavený po restartování virtuálního počítače:# systool -v -m nfs | grep -i nfs4_unique
nfs4_unique_id = "uniquenfs4-1"
Připojte svazek NFSv4.1 k oběma virtuálním počítačům jako obvykle.
Oba virtuální počítače se stejným názvem hostitele teď můžou připojit a přistupovat ke svazku NFSv4.1.