تكوين عميل NFS لـ Azure NetApp Files
تكوين عميل NFS الموضح في هذه المقالة هو جزء من الإعداد عند تكوين تشفير NFSv4.1 Kerberos أو إنشاء وحدة تخزين بروتوكول مزدوج. تتوفر مجموعة واسعة من توزيعات Linux للاستخدام مع Azure NetApp Files. توضح هذه المقالة تكوينات لاثنين من البيئات الأكثر استخداما: RHEL 8 و Ubuntu 18.04.
المتطلبات والاعتبارات
بغض النظر عن نكهة Linux التي تستخدمها ، يلزم إجراء التكوينات التالية:
- تكوين عميل NTP لتجنب المشكلات المتعلقة بانحراف الوقت.
- تكوين إدخالات DNS لعميل Linux لتحليل الاسم.
يجب أن يتضمن هذا التكوين سجل "A" (إلى الأمام) وسجل PTR (عكس) . - للانضمام إلى المجال، قم بإنشاء حساب كمبيوتر لعميل Linux في Active Directory الهدف (الذي يتم إنشاؤه أثناء الأمر join realm).
ملاحظة
$SERVICEACCOUNTيجب أن يكون المتغير المستخدم في الأوامر أدناه حساب مستخدم لديه أذونات أو تفويض لإنشاء حساب كمبيوتر في الوحدة التنظيمية المستهدفة.
تكوين RHEL 8
يصف هذا القسم تكوينات RHEL المطلوبة لتشفير NFSv4.1 Kerberos والبروتوكول المزدوج.
تستخدم الأمثلة الواردة في هذا القسم اسم المجال وعنوان IP التاليين:
- اسم النطاق:
contoso.com - الملكية الفكرية الخاصة:
10.6.1.4
تكوين RHEL 8 إذا كنت تستخدم تشفير NFSv4.1 Kerberos
تكوين
/etc/resolv.confمع خادم DNS المناسب.على سبيل المثال:
[root@reddoc cbs]# cat /etc/resolv.conf
search contoso.com
nameserver 10.6.1.4(private IP)أضف سجل عميل NFS في خادم DNS لمنطقة البحث الأمامي والعكسي لنظام أسماء النطاقات.
للتحقق من DNS، استخدم الأوامر التالية من عميل NFS:
# nslookup [hostname/FQDN of NFS client(s)]
# nslookup [IP address of NFS client(s)]تثبيت الحزم:
yum update
sudo yum -y install realmd sssd adcli samba-common krb5-workstation chrony nfs-utilsتكوين عميل NTP.
يستخدم RHEL 8 chrony افتراضيا. اتبع إرشادات التكوين في استخدام
Chronyالمجموعة لتكوين NTP.انضم إلى مجال Active Directory:
sudo realm join $DOMAIN.NAME -U $SERVICEACCOUNT --computer-ou="OU=$YOUROU"على سبيل المثال:
sudo realm join CONTOSO.COM -U ad_admin --computer-ou="CN=Computers"تأكد من تعيين ذلك
default_realmإلى المجال المقدم في/etc/krb5.conf. إذا لم يكن الأمر كذلك ، فقم بإضافته[libdefaults]ضمن القسم الموجود في الملف كما هو موضح في المثال التالي:[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أعد تشغيل كافة خدمات NFS:
systemctl start nfs-*
systemctl restart rpc-gssd.serviceتمنع إعادة التشغيل حالة
“mount.nfs: an incorrect mount option was specified”الخطأ أثناء تحميل Kerberos.kinitقم بتشغيل الأمر باستخدام حساب المستخدم للحصول على التذاكر:sudo kinit $SERVICEACCOUNT@DOMAINعلى سبيل المثال:
sudo kinit ad_admin@CONTOSO.COM
تكوين RHEL 8 إذا كنت تستخدم بروتوكولا مزدوجا
الخطوات التالية اختيارية. تحتاج إلى تنفيذ الخطوات فقط إذا كنت تستخدم تعيين المستخدم في عميل NFS:
أكمل كافة الخطوات الموضحة في تكوين RHEL 8 إذا كنت تستخدم قسم تشفير NFSv4.1 Kerberos.
أضف سجل DNS ثابتا في ملف /etc/hosts لاستخدام اسم المجال المؤهل بالكامل (FQDN) لإعلانك، بدلا من استخدام عنوان IP في ملف تكوين SSSD:
cat /etc/hosts
10.6.1.4 winad2016.contoso.comأضف قسما إضافيا للنطاقات لحل المعرفات من خادم 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]أعلاه:id_providerتم تعيينه إلىldapوليسad.- حدد التكوين قواعد البحث وفئات المستخدمين والمجموعات لعمليات البحث.
ldap_sasl_authidهو اسم حساب الجهاز منklist -kte.- تم تعيين
use_fully_qualified_namesإلىfalse. يعني هذا الإعداد أنه يتم استخدام هذا التكوين عند استخدام اسم قصير. ldap_id_mappingغير محدد، والذي يتم تعيينه افتراضيا إلىfalse.
realm joinيتم إنشاء التكوين بواسطة العميل ويبدو كما يلي:[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]أعلاه:- تم تعيين
id_providerإلىad. - تم تعيين
ldap_id_mappingإلىtrue. يستخدم المعرفات التي تم إنشاؤها بواسطة SSSD. بدلا من ذلك، يمكنك تعيين هذه القيمة إلىfalseإذا كنت تريد استخدام معرفات POSIX UID لجميع أنماط أسماء المستخدمين. يمكنك تحديد القيمة استنادا إلى تكوين العميل. use_fully_qualified_namesعبارة عنtrue. يعني هذا الإعداد أنهuser@CONTOSO.COMسيتم استخدام هذا التكوين.
تأكد من حصولك
/etc/nsswitch.confعلى الإدخالsss:cat /etc/nsswitch.conf
passwd: sss files systemd
group: sss files systemd
netgroup: sss filesأعد تشغيل
sssdالخدمة وامسح ذاكرة التخزين المؤقت:service sssd stop
rm -f /var/lib/sss/db/*
service sssd startاختبار للتأكد من دمج العميل مع خادم LDAP:
[root@red81 cbs]# id ldapuser1
uid=1234(ldapuser1) gid=1111(ldapgroup1) groups=1111(ldapgroup1)
تكوين أوبونتو
يصف هذا القسم تكوينات Ubuntu المطلوبة لتشفير NFSv4.1 Kerberos والبروتوكول المزدوج.
تستخدم الأمثلة الواردة في هذا القسم اسم المجال وعنوان IP التاليين:
- اسم النطاق:
contoso.com - الملكية الفكرية الخاصة:
10.6.1.4
تكوين
/etc/resolv.confمع خادم DNS المناسب:root@ubuntu-rak:/home/cbs# cat /etc/resolv.conf
search contoso.com
nameserver <private IP address of DNS server>إضافة سجل عميل NFS في ملقم DNS لمنطقة البحث الأمامي والعكسي DNS.
للتحقق من DNS، استخدم الأوامر التالية من عميل NFS:
# nslookup [hostname/FQDN of NFS client(s)]
# nslookup [IP address of NFS client(s)]تثبيت الحزم:
apt-get update
apt-get install -y realmd packagekit sssd adcli samba-common chrony krb5-user nfs-commonعند المطالبة، قم بالإدخال
$DOMAIN.NAME(باستخدام الأحرف الكبيرة، على سبيل المثال،CONTOSO.COM) كعالم Kerberos الافتراضي.إعادة تشغيل الخدمة
rpc-gssd.service:sudo systemctl start rpc-gssd.serviceيستخدم Ubuntu 18.04 chrony افتراضيا. اتباع إرشادات التكوين في Ubuntu Bionic: استخدام chrony لتكوين NTP.
انضم إلى مجال Active Directory:
sudo realm join $DOMAIN.NAME -U $SERVICEACCOUNT --computer-ou="OU=$YOUROU"على سبيل المثال:
sudo realm join CONTOSO.COM -U ad_admin --computer-ou="CN=Computers"أداء
kinitمع المستخدم للحصول على التذاكر:sudo kinit $SERVICEACCOUNTعلى سبيل المثال:
sudo kinit ad_admin
تكوين أوبونتو إذا كنت تستخدم بروتوكول مزدوج
الخطوات التالية اختيارية. تحتاج إلى تنفيذ الخطوات فقط إذا كنت تريد استخدام تعيين المستخدم في عميل NFS:
قم بتشغيل الأمر التالي لترقية الحزم المثبتة:
sudo apt update && sudo apt install libnss-ldap libpam-ldap ldap-utils nscdيستخدم المثال التالي قيم العينات. عندما يطالبك الأمر بالإدخال ، يجب عليك توفير الإدخال استنادا إلى بيئتك.
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تأكد من أن ملفك
/etc/nsswitch.confيحتوي على الإدخالات التاليةldap:
passwd: compat systemd ldap
group: compat systemd ldapقم بتشغيل الأمر التالي لإعادة تشغيل الخدمة وتمكينها:
sudo systemctl restart nscd && sudo systemctl enable nscd
يقوم المثال التالي بالاستعلام عن خادم AD LDAP من برنامج Ubuntu LDAP لمستخدم ‘hari1’LDAP:
root@cbs-k8s-varun4-04:/home/cbs# getent passwd hari1
hari1:*:1237:1237:hari1:/home/hari1:/bin/bash
تكوين جهازين ظاهريين بنفس اسم المضيف للوصول إلى وحدات تخزين NFSv4.1
يشرح هذا القسم كيفية تكوين جهازين ظاهريين لهما نفس اسم المضيف للوصول إلى وحدات تخزين Azure NetApp Files NFSv4.1. يمكن أن يكون هذا الإجراء مفيدا عند إجراء اختبار التعافي من الكوارث (DR) ويتطلب نظام اختبار بنفس اسم المضيف مثل نظام DR الأساسي. هذا الإجراء مطلوب فقط عندما يكون لديك نفس اسم المضيف على جهازين ظاهريين يقومان بالوصول إلى نفس وحدات تخزين ملفات Azure NetApp.
يتطلب NFSv4.x من كل عميل تعريف نفسه بالخوادم ذات السلسلة الفريدة . يرتبط ملف فتح وحالة القفل المشتركة بين عميل واحد وخادم واحد بهذه الهوية. لدعم استرداد حالة NFSv4.x القوي وترحيل الحالة الشفاف، يجب ألا تتغير سلسلة الهوية هذه عبر عمليات إعادة تشغيل العميل.
عرض السلسلة على
nfs4_unique_idعملاء VM باستخدام الأمر التالي:# systool -v -m nfs | grep -i nfs4_unique
nfs4_unique_id = ""لتحميل وحدة التخزين نفسها على جهاز ظاهري إضافي بنفس اسم المضيف، على سبيل المثال نظام DR، قم بإنشاء
nfs4_unique_idوحدة تخزين حتى تتمكن من تعريف نفسها بشكل فريد لخدمة Azure NetApp Files NFS. تسمح هذه الخطوة للخدمة بالتمييز بين جهازي ظاهري لهما نفس اسم المضيف وتمكين تركيب وحدات تخزين NFSv4.1 على كلا الجهازين الظاهريين.تحتاج إلى تنفيذ هذه الخطوة على اختبار نظام DR فقط. من أجل الاتساق، يمكنك التفكير في تطبيق إعداد فريد على كل جهاز ظاهري معني.
على اختبار نظام DR، أضف السطر التالي إلى الملف، الموجود
nfsclient.confعادة في/etc/modprobe.d/:options nfs nfs4_unique_id=uniquenfs4-1يمكن أن تكون السلسلة
uniquenfs4-1أي سلسلة أبجدية رقمية ، طالما أنها فريدة من نوعها عبر الأجهزة الظاهرية التي سيتم توصيلها بالخدمة.تحقق من وثائق التوزيع الخاص بك حول كيفية تكوين إعدادات عميل NFS.
أعد تشغيل الجهاز الظاهري ليصبح التغيير ساري المفعول.
على اختبار نظام DR، تحقق من أنه
nfs4_unique_idتم تعيينه بعد إعادة تشغيل الجهاز الظاهري:# systool -v -m nfs | grep -i nfs4_unique
nfs4_unique_id = "uniquenfs4-1"قم بتركيب وحدة تخزين NFSv4.1 على كلا الجهازين الظاهريين كالمعتاد.
يمكن الآن تحميل كل من الأجهزة الظاهرية التي تحمل نفس اسم المضيف والوصول إلى وحدة تخزين NFSv4.1.