تكوين عميل NFS لـ Azure NetApp Files
يعد تكوين عميل NFS الموضح في هذه المقالة جزءا من الإعداد عند تكوين تشفير NFSv4.1 Kerberos أو إنشاء وحدة تخزين ثنائية البروتوكول أو NFSv3/NFSv4.1 باستخدام LDAP. تتوفر مجموعة واسعة من توزيعات Linux لاستخدامها مع Azure NetApp Files. توضح هذه المقالة التكوينات لاثنين من البيئات الأكثر استخداما: RHEL 8 وUbuntu 18.04.
المتطلبات والاعتبارات
بغض النظر عن نكهة Linux التي تستخدمها، فإن التكوينات التالية مطلوبة:
- تكوين عميل NTP لتجنب المشكلات مع انحراف الوقت.
- تكوين إدخالات DNS لعميل Linux لتحليل الاسم.
يجب أن يتضمن هذا التكوين سجل "A" (للأمام) وسجل PTR (عكسي). - بالنسبة للانضمام إلى المجال، قم بإنشاء حساب كمبيوتر لعميل Linux في Active Directory الهدف (الذي يتم إنشاؤه أثناء أمر الانضمام إلى النطاق).
إشعار
$SERVICEACCOUNT
يجب أن يكون المتغير المستخدم في الأوامر أدناه حساب مستخدم لديه أذونات أو تفويض لإنشاء حساب كمبيوتر في الوحدة التنظيمية المستهدفة.
تكوين RHEL 8
يصف هذا القسم تكوينات RHEL المطلوبة لتشفير NFSv4.1 Kerberos والبروتوكول المزدوج.
تستخدم الأمثلة في هذا القسم اسم المجال وعنوان IP التاليين:
- اسم المجال:
contoso.com
- IP الخاص:
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 ترتيبا زمنيا بشكل افتراضي.
انضم إلى مجال 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) ل AD الخاص بك، بدلا من استخدام عنوان 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 UIDs لجميع أنماط أسماء المستخدمين. يمكنك تحديد القيمة استنادا إلى تكوين العميل الخاص بك. 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
يصف هذا القسم تكوينات Ubuntu المطلوبة لتشفير NFSv4.1 Kerberos والبروتوكول المزدوج.
تستخدم الأمثلة في هذا القسم اسم المجال وعنوان IP التاليين:
- اسم المجال:
contoso.com
- IP الخاص:
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، استخدم الأوامر التالية من عميل 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 ترتيبا زمنيا بشكل افتراضي. اتباع إرشادات التكوين في Ubuntu Bionic: استخدام الترتيب الزمني لتكوين 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
تكوين Ubuntu إذا كنت تستخدم بروتوكولا مزدوجا
الخطوات التالية اختيارية. تحتاج إلى تنفيذ الخطوات فقط إذا كنت تريد استخدام تعيين المستخدم في عميل 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
يشرح هذا القسم كيف يمكنك تكوين جهازين ظاهريين لديهما نفس اسم المضيف للوصول إلى وحدات تخزين NFSv4.1 لملفات Azure NetApp. يمكن أن يكون هذا الإجراء مفيدا عند إجراء اختبار التعافي من الكوارث (DR) وتتطلب نظام اختبار بنفس اسم المضيف مثل نظام الاسترداد بعد الكوارث الأساسي. هذا الإجراء مطلوب فقط عندما يكون لديك نفس اسم المضيف على جهازين ظاهريين يصلان إلى نفس وحدات تخزين Azure NetApp Files.
يتطلب NFSv4.x من كل عميل تعريف نفسه إلى خوادم ذات سلسلة فريدة . ترتبط حالة فتح الملف وتأمينه المشتركة بين عميل واحد وخادم واحد بهذه الهوية. لدعم استرداد حالة NFSv4.x القوي وترحيل الحالة الشفاف، يجب ألا تتغير سلسلة الهوية هذه عبر عمليات إعادة تشغيل العميل.
nfs4_unique_id
عرض السلسلة على عملاء الجهاز الظاهري باستخدام الأمر التالي:# systool -v -m nfs | grep -i nfs4_unique
nfs4_unique_id = ""
لتحميل نفس وحدة التخزين على جهاز ظاهري إضافي بنفس اسم المضيف، على سبيل المثال نظام التعافي من الكوارث، قم بإنشاء
nfs4_unique_id
بحيث يمكن تعريف نفسه بشكل فريد لخدمة Azure NetApp Files NFS. تسمح هذه الخطوة للخدمة بالتمييز بين الجهازين الظاهريين بنفس اسم المضيف وتمكين تحميل وحدات تخزين NFSv4.1 على كلا الجهازين الظاهريين.تحتاج إلى تنفيذ هذه الخطوة على نظام التعافي من الكوارث الاختباري فقط. للتناسق، يمكنك التفكير في تطبيق إعداد فريد على كل جهاز ظاهري مضمن.
في نظام الاختبار DR، أضف السطر التالي إلى
nfsclient.conf
الملف، الموجود عادة في/etc/modprobe.d/
:options nfs nfs4_unique_id=uniquenfs4-1
يمكن أن تكون السلسلة
uniquenfs4-1
أي سلسلة أبجدية رقمية، طالما أنها فريدة عبر الأجهزة الظاهرية ليتم توصيلها بالخدمة.تحقق من وثائق التوزيع حول كيفية تكوين إعدادات عميل NFS.
أعد تشغيل الجهاز الظاهري حتى يسري التغيير.
في نظام التعافي من الكوارث الاختباري، تحقق من أنه
nfs4_unique_id
تم تعيينه بعد إعادة تشغيل الجهاز الظاهري:# systool -v -m nfs | grep -i nfs4_unique
nfs4_unique_id = "uniquenfs4-1"
قم بتحميل وحدة التخزين NFSv4.1 على كلا الجهازين الظاهريين كالمعتاد.
يمكن الآن لكلا الجهازين الظاهريين اللذين يحملان نفس اسم المضيف تحميل وحدة التخزين NFSv4.1 والوصول إليها.