Aracılığıyla paylaş


Yük devretme kümesi örneğini yapılandırma - NFS - Linux'ta SQL Server

Şunlar için geçerlidir:Linux üzerinde SQL Server

Bu makale, Linux'ta bir yük devretme kümesi örneği (FCI) için NFS depolamanın nasıl yapılandırılacağını açıklar.

NFS veya ağ dosya sistemi, Linux dünyasında diskleri paylaşmak için yaygın bir yöntemdir ancak Windows'ta paylaşılmaz. iSCSI'ya benzer şekilde, SQL Server için depolama gereksinimlerini karşılıyorsa NFS bir sunucuda veya bir tür alette veya depolama biriminde yapılandırılabilir.

Önemli NFS sunucu bilgileri

NFS'yi barındıran kaynak (Linux sunucusu veya başka bir şey) 4.2 veya sonraki bir sürümü kullanıyor/uyumlu olmalıdır. Önceki sürümler Linux üzerinde SQL Server ile çalışmaz.

NFS sunucusunda paylaşılacak klasörleri yapılandırırken şu genel yönergelere uyduğundan emin olun:

  • Klasörün okunabilir ve yazılabilir olmasını sağlamak için rw
  • Klasöre garantili yazma işlemleri yapmak için sync
  • seçenek olarak no_root_squash kullanmayın; güvenlik riski olarak kabul edilir
  • Klasörün tüm izinlere sahip olduğundan emin olun (777)

Erişim için güvenlik standartlarınızı uyguladığınızdan emin olun. Klasörü yapılandırırken yalnızca FCI'ye katılan sunucuların NFS klasörünü görmesi gerektiğinden emin olun. Aşağıdaki örnekte, linux tabanlı bir NFS çözümünde değiştirilmiş bir /etc/exports gösterilir ve burada klasör FCIN1 ve FCIN2ile sınırlıdır.

# /etc/exports: the access control list for filesystems which may be exported
#               to NFS clients. See export(5).
#
/var/nfs/fci1   FCIN1(rw,sync) FCIN2(rw,sync)

Talimatlar

  1. FCI yapılandırmasına katılacak sunuculardan birini seçin. Hangisi olduğu önemli değil.

  2. Sunucunun NFS sunucusundaki depolama birimlerini görebildiğini denetleyin.

    sudo showmount -e <IPAddressOfNFSServer>
    
    • <IPAddressOfNFSServer>, kullanacağınız NFS sunucusunun IP adresidir.
  3. Sistem veritabanları veya varsayılan veri konumunda depolanan herhangi bir şey için şu adımları izleyin. Aksi takdirde, 4. Adıma atlayın.

    • Üzerinde çalıştığınız sunucuda SQL Server'ın durduruldığından emin olun.

      sudo systemctl stop mssql-server
      sudo systemctl status mssql-server
      
    • Tamamen süper kullanıcı olacak şekilde geçiş yapın.

      sudo -i
      
    • mssql kullanıcı olarak geçiş yapın.

      su mssql
      
    • SQL Server verilerini ve günlük dosyalarını depolamak için geçici bir dizin oluşturun.

      mkdir <TempDir>
      
      • <TempDir> klasörün adıdır. Aşağıdaki örnek, /var/opt/mssql/tmpadlı bir klasör oluşturur.
      mkdir /var/opt/mssql/tmp
      
    • SQL Server verilerini ve günlük dosyalarını geçici dizine kopyalayın.

      cp /var/opt/mssql/data/* <TempDir>
      
      • <TempDir>, önceki adımdaki klasörün adıdır.
    • Dosyaların dizininde olduğunu doğrulayın.

      ls TempDir
      
      • <TempDir>, önceki adımdaki klasörün adıdır.
    • Dosyaları mevcut SQL Server veri dizininden silin.

      rm - f /var/opt/mssql/data/*
      
    • Dosyaların silindiğini doğrulayın.

      ls /var/opt/mssql/data
      
    • Kök kullanıcıya geri dönmek için exit yazın.

    • NFS paylaşımını SQL Server veri klasörüne bağlayın.

      mount -t nfs4 <IPAddressOfNFSServer>:<FolderOnNFSServer> /var/opt/mssql/data -o nfsvers=4.2,timeo=14,intr
      
      • <IPAddressOfNFSServer>, kullanacağınız NFS sunucusunun IP adresidir
      • <FolderOnNFSServer>, NFS paylaşımının adıdır. Aşağıdaki örnek söz dizimi, 2. Adımdaki NFS bilgileriyle eşleşir.
      mount -t nfs4 10.201.202.63:/var/nfs/fci1 /var/opt/mssql/data -o nfsvers=4.2,timeo=14,intr
      
    • "Mount komutunu hiçbir parametre olmadan çalıştırarak bağlamanın başarılı olup olmadığını kontrol edin."

      mount
      

      İşte beklenen çıktılar.

      10.201.202.63:/var/nfs/fcil on /var/opt/mssql/data type nfs4 (rw,relatime,vers=4.2,rsize=524288,wsize=524288,namlen=255,hard, proto=tcp,port=0,timeo=14, retrans=2,sec=sys,clientaddr=10.201.202.128,local lock=none, addr=10.201.202.63)
      
    • mssql kullanıcıya geçin.

      su mssql
      
    • Dosyaları geçici /var/opt/mssql/data dizininden kopyalayın.

      cp /var/opt/mssql/tmp/* /var/opt/mssqldata
      
    • Dosyaların orada olduğunu doğrulayın.

      ls /var/opt/mssql/data
      
    • exitolmaması için mssql girin.

    • Kök olmaması için exit girin.

    • SQL Server'ı başlatın. Her şey doğru kopyalandıysa ve güvenlik doğru uygulandıysa, SQL Server başlatılmış olarak gösterilmelidir.

      sudo systemctl start mssql-server
      sudo systemctl status mssql-server
      
    • Güvenliğin düzgün ayarlandığını test etmek için bir veritabanı oluşturun. Aşağıdaki örnek, Transact-SQL aracılığıyla yapıldığını gösterir. Ayrıca SQL Server Management Studio (SSMS) aracılığıyla da yapılabilir.

      Test veritabanının nasıl oluşturulacağını gösteren ekran görüntüsü.

    • SQL Server'ı durdurun ve kapatıldığını doğrulayın.

      sudo systemctl stop mssql-server
      sudo systemctl status mssql-server
      
    • Başka bir NFS bağlantısı oluşturmuyorsanız, paylaşımı ayırın. Başka bağlamalar oluşturuyorsanız, bağlamaları kaldırmayın.

      sudo umount <IPAddressOfNFSServer>:<FolderOnNFSServer> <FolderToMountIn>
      
      • <IPAddressOfNFSServer>, kullanacağınız NFS sunucusunun IP adresidir
      • <FolderOnNFSServer>, NFS paylaşımının adıdır
      • <FolderMountedIn>, önceki adımda oluşturulan klasördür.
  4. Kullanıcı veritabanları veya yedeklemeler gibi sistem veritabanları dışındaki şeyler için aşağıdaki adımları izleyin. Yalnızca varsayılan konumu kullanıyorsanız 5. adıma geçin.

    • Süper kullanıcı olarak geçiş yapın.

      sudo -i
      
    • SQL Server tarafından kullanılacak bir klasör oluşturun.

      mkdir <FolderName>
      
      • <FolderName> klasörün adıdır. Doğru konumda değilse klasörün tam yolunun belirtilmesi gerekir.

      Aşağıdaki örnek, /var/opt/mssql/userdataadlı bir klasör oluşturur.

      mkdir /var/opt/mssql/userdata
      
    • NFS paylaşımını önceki adımda oluşturulan klasöre bağlayın.

      mount -t nfs4 <IPAddressOfNFSServer>:<FolderOnNFSServer> <FolderToMountIn> -o nfsvers=4.2,timeo=14,intr
      
      • <IPAddressOfNFSServer>, kullanacağınız NFS sunucusunun IP adresidir
      • <FolderOnNFSServer>, NFS paylaşımının adıdır
      • <FolderToMountIn>, önceki adımda oluşturulan klasördür.

      Aşağıdaki örnek NFS paylaşımını bağlar.

      mount -t nfs4 10.201.202.63:/var/nfs/fci2 /var/opt/mssql/userdata -o nfsvers=4.2,timeo=14,intr
      
    • "Mount komutunu hiçbir parametre olmadan çalıştırarak bağlamanın başarılı olup olmadığını kontrol edin."

    • Artık süper kullanıcı olmayacak şekilde exit yazın.

    • Test etmek için bu klasörde bir veritabanı oluşturun. Aşağıdaki örnek sqlcmd kullanarak veritabanı oluşturur, bağlamı buna geçirir, dosyaların işletim sistemi düzeyinde var olduğunu doğrular ve geçici konumu siler. SSMS kullanabilirsiniz.

      sqlcmd komutunun ekran görüntüsü ve komutun yanıtı.

    • Paylaşımı ayır

      sudo umount <IPAddressOfNFSServer>:<FolderOnNFSServer> <FolderToMountIn>
      
      • <IPAddressOfNFSServer>, kullanacağınız NFS sunucusunun IP adresidir
      • <FolderOnNFSServer>, NFS paylaşımının adıdır
      • <FolderMountedIn>, önceki adımda oluşturulan klasördür.
  5. Diğer düğümlerde adımları yineleyin.