Megosztás:


Feladatátvételi fürtpéldány konfigurálása – iSCSI – SQL Server Linuxon

A következőkre vonatkozik:SQL Server Linux rendszeren

Ez a cikk bemutatja, hogyan konfigurálhatja az iSCSI-tárolót egy feladatátvevő fürtpéldányhoz (FCI) Linuxon.

Az iSCSI konfigurálása

Az iSCSI hálózatokon keresztül egy célállomásként ismert szerver lemezeit jeleníti meg a kiszolgálók számára. Az iSCSI célponthoz csatlakozó kiszolgálóknak szükségük van egy iSCSI-kezdeményező konfigurálására. ** A céllemezek explicit engedélyeket kapnak, hogy csak azok a kezdeményezők férhessenek hozzá, akiknek hozzáférési jogosultságuk van. A célnak magas rendelkezésre állásúnak és megbízhatónak kell lennie.

Fontos iSCSI-céladatok

Bár ez a szakasz nem foglalkozik az iSCSI-tároló konfigurálásával, mivel az a használt forrás típusára vonatkozik, győződjön meg arról, hogy a fürtcsomópontok által használt lemezek biztonsága konfigurálva van.

A cél soha nem konfigurálható egyik FCI-csomóponton sem, ha Linux-alapú iSCSI célt használ. A teljesítmény és a rendelkezésre állás érdekében az iSCSI-hálózatokat el kell különíteni a forrás- és az ügyfélkiszolgálókon rendszeres hálózati forgalom által használt hálózatoktól. Az iSCSI-hez használt hálózatoknak gyorsnak kell lenniük. Ne feledje, hogy a hálózat némi processzor-sávszélességet használ, ezért ennek megfelelően tervezze meg, ha normál kiszolgálót használ.

Az egyik legfontosabb feladat annak biztosítása, hogy a létrehozott lemezekhez megfelelő engedélyek legyenek hozzárendelve, hogy csak az FCI-ben részt vevő kiszolgálók férhessenek hozzá. Itt egy példát láthat a Microsoft iSCSI célról, ahol a linuxnodes1 a létrehozott név, és ebben az esetben a csomópontokhoz rendelt IP-címek úgy vannak beállítva, hogy NewFCIDisk1.vhdx-nek tűnjenek.

Kezdeményező képernyőképe.

Előírás

Ez a szakasz bemutatja, hogyan konfigurálhat iSCSI-kezdeményezőt az FCI csomópontjaként szolgáló kiszolgálókon. Az utasításoknak ugyanúgy kell működnie, mint a Red Hat Enterprise Linux (RHEL) és az Ubuntu esetében.

A támogatott disztribúciók iSCSI-kezdeményezőjének további információiért tekintse meg az alábbi hivatkozásokat:

Megjegyzés:

Az SQL Server 2025 -től (17.x) kezdődően a SUSE Linux Enterprise Server (SLES) nem támogatott.

  1. Válassza ki az FCI-konfigurációban részt vevő kiszolgálók egyikét. Nem számít, melyiket. Az iSCSI-nek dedikált hálózaton kell lennie, ezért konfigurálja az iSCSI-t a hálózat felismerésére és használatára. Futtassa a sudo iscsiadm -m iface -I <iSCSIIfaceName> -o new parancsot, ahol a <iSCSIIfaceName> a hálózat egyedi vagy felhasználóbarát neve. Az alábbi példa iSCSINIChasznál:

    sudo iscsiadm -m iface -I iSCSINIC -o new
    

    Itt a várt kimenet.

    New interface iSCSINIC added
    
  2. /var/lib/iscsi/ifaces/iSCSIIfaceNameszerkesztése. Győződjön meg arról, hogy a következő értékek teljesen ki vannak töltve:

    • iface.net_ifacename az operációs rendszerben látható hálózati kártya neve.
    • iface.hwaddress az alábbi felülethez létrehozandó egyedi név MAC-címe.
    • iface.ipaddress
    • iface.subnet_Mask

    Lásd a következő példát:

    A fájl képernyőképe, amelyen az értékek teljesen ki vannak töltve.

  3. Keresse meg az iSCSI-célt.

    sudo iscsiadm -m discovery -t sendtargets -I <iSCSINetName> -p <TargetIPAddress>:<TargetPort>
    

    <iSCSINetName> a hálózat egyedi/felhasználóbarát neve, <TargetIPAddress> az iSCSI-cél IP-címe, <TargetPort> pedig az iSCSI-cél portja.

    Itt a várt kimenet.

    10.181.182.1:3260,1 iqn.1991-05.com.contoso:dcl-linuxnodes1-target
    10.201.202.1:3260,1 iqn.1991-05.com.contoso:dc1-linuxnodes1-target
    [2002:b4b5:b601::b4b5:b601]:3260,1 iqn.1991-05.com.contoso:dcl-linuxnodes1-target
    [2002:8c9:ca01::c8c9:ca01]:3260,1 iqn.1991-05.com.contoso:dcl-linuxnodes1-target
    
  4. Jelentkezzen be a célhelyre.

    sudo iscsiadm -m node -I <iSCSIIfaceName> -p TargetIPAddress -l
    

    <iSCSIIfaceName> a hálózat egyedi/felhasználóbarát neve, <TargetIPAddress> pedig az iSCSI-cél IP-címe.

    Itt a várt kimenet.

    Logging in to [iface: iSCSINIC, target: ian.1991-05.com.contoso:dcl-linuxnodesl-tar get, portal: 10.181.182.1,3260] (multiple)
    Login to [iface: iSCSINIC, target: ian.1991-05.com.contoso:dcl-linuxnodesl-tar get, portal: 10.181.182.1,3260] successful.
    
  5. Ellenőrizze, hogy van-e kapcsolat az iSCSI-céllal.

    sudo iscsiadm -m session
    

    A kimenet az alábbi példához hasonlóan néz ki:

    tcp: [1] 10.105.16.7:3260,1 iqn.1991-05.com.contoso:dcl-linuxnodes1-target (non-flash)
    
  6. Ellenőrizze az iSCSI-hez csatlakoztatott lemezeket.

    sudo grep "Attached SCSI" /var/log/messages
    

    Képernyőkép a grep parancsról és a parancsra adott válaszról, amelyen a csatolt SCSI-lemezek láthatók.

  7. Hozzon létre egy fizikai kötetet az iSCSI-lemezen.

    sudo pvcreate /dev/<devicename>
    

    <devicename> az előző lépésben szereplő eszköz neve.

  8. Hozzon létre egy kötetcsoportot az iSCSI-lemezen. Az egyetlen kötetcsoporthoz rendelt lemezek készletnek vagy gyűjteménynek tekinthetők.

    sudo vgcreate <VolumeGroupName> /dev/devicename
    

    <VolumeGroupName> a kötetcsoport neve, <devicename> pedig az eszköz neve a 6. lépésből.

  9. Hozza létre és ellenőrizze a lemez logikai kötetét.

    sudo lvcreate -Lsize -n <LogicalVolumeName> <VolumeGroupName>
    

    <size> a létrehozandó kötet mérete, amely G (gigabájt), T (terabájt) stb. értékekkel adható meg, <LogicalVolumeName> a logikai kötet neve, <VolumeGroupName> pedig az előző lépés kötetcsoportjának neve.

    Itt a várt kimenet.

    Logical volume "FCIDataLV1" created.
    

    Az alábbi példa egy 25 GB-os kötetet hoz létre.

  10. Futtassa a sudo lvs parancsot a létrehozott LVM megtekintéséhez.

  11. Formázza a logikai kötetet egy támogatott fájlrendszerrel. Az ext4 esetében használja a következő példát:

    sudo mkfs.ext4 /dev/<VolumeGroupName>/<LogicalVolumeName>
    

    <VolumeGroupName> az előző lépés kötetcsoportjának neve. <LogicalVolumeName> az előző lépés logikai kötetének neve.

  12. A rendszeradatbázisok vagy az alapértelmezett adathelyen tárolt adatok esetében kövesse az alábbi lépéseket. Ellenkező esetben ugorjon a 13. lépésre.

    1. Győződjön meg arról, hogy az SQL Server le van állítva azon a kiszolgálón, amelyen éppen dolgozik.

      sudo systemctl stop mssql-server
      sudo systemctl status mssql-server
      
    2. Váltson teljesen szuperfelhasználóvá. Ha sikeres, nem kap visszaigazolást.

      sudo -i
      
    3. Váltson mssql felhasználóra. Ha sikeres, nem kap visszaigazolást.

      su mssql
      
    4. Hozzon létre egy ideiglenes könyvtárat az SQL Server-adatok és naplófájlok tárolásához. Ha sikeres, nem kap visszaigazolást.

      mkdir <TempDir>
      

      <TempDir> a mappa neve. Az alábbi példa létrehoz egy /var/opt/mssql/TempDir nevű mappát.

      mkdir /var/opt/mssql/TempDir
      
    5. Másolja az SQL Server-adatokat és naplófájlokat az ideiglenes könyvtárba. Ha sikeres, nem kap visszaigazolást.

      cp /var/opt/mssql/data/* <TempDir>
      

      <TempDir> az előző lépésben szereplő mappa neve.

    6. Ellenőrizze, hogy a fájlok a könyvtárban vannak-e.

      ls <TempDir>
      

      <TempDir> a mappa neve az előző lépésekből.

    7. Törölje a fájlokat a meglévő SQL Server-adatkönyvtárból. Ha sikeres, nem kap visszaigazolást.

      rm - f /var/opt/mssql/data/*
      
    8. Ellenőrizze, hogy törölték-e a fájlokat. Az alábbi képen egy példa látható a teljes sorozatra c és h között.

      ls /var/opt/mssql/data
      

      Képernyőkép az ls parancsról és a parancsra adott válaszról.

    9. A exit felhasználóra való visszaváltáshoz írja be a root.

    10. Csatlakoztassa az iSCSI logikai kötetet az SQL Server adatmappájában. Ha sikeres, nem kap visszaigazolást.

      mount /dev/<VolumeGroupName>/<LogicalVolumeName> /var/opt/mssql/data
      

      <VolumeGroupName> a kötetcsoport neve, <LogicalVolumeName> pedig a létrehozott logikai kötet neve. Az alábbi példa szintaxisa megegyezik az előző parancs kötetcsoportjának és logikai kötetének szintaxisával.

      mount /dev/FCIDataVG1/FCIDataLV1 /var/opt/mssql/data
      
    11. Módosítsa a csatlakoztatás tulajdonosát mssql. Ha sikeres, nem kap visszaigazolást.

      chown mssql /var/opt/mssql/data
      
    12. Módosítsa a csatolás csoportjának tulajdonjogát mssql-ra. Ha sikeres, nem kap visszaigazolást.

      chgrp mssql /var/opt/mssql/data
      
    13. Váltson a mssql felhasználóra. Ha sikeres, nem kap visszaigazolást.

      su mssql
      
    14. Másolja a fájlokat az ideiglenes könyvtárból /var/opt/mssql/data. Ha sikeres, nem kap visszaigazolást.

      cp /var/opt/mssql/TempDir/* /var/opt/mssql/data
      
    15. Ellenőrizze, hogy a fájlok ott vannak-e.

      ls /var/opt/mssql/data
      
    16. Adja meg a exit, hogy ne legyen mssql.

    17. Adja meg a exit, hogy ne legyen root.

    18. Indítsa el az SQL Servert. Ha minden megfelelően lett másolva, és a biztonság megfelelően lett alkalmazva, az SQL Servernek elindult állapotban kell lennie.

      sudo systemctl start mssql-server
      sudo systemctl status mssql-server
      
    19. Állítsa le az SQL Servert, és ellenőrizze, hogy leállt-e.

      sudo systemctl stop mssql-server
      sudo systemctl status mssql-server
      
  13. A rendszeradatbázisok, például a felhasználói adatbázisok vagy a biztonsági másolatok kivételével az alábbi lépéseket kell követnie. Ha csak az alapértelmezett helyet használja, ugorjon a 14. lépésre.

    1. Váltson szuperfelhasználóra. Ha sikeres, nem kap visszaigazolást.

      sudo -i
      
    2. Hozzon létre egy mappát, amelyet az SQL Server használ.

      mkdir <FolderName>
      

      <FolderName> a mappa neve. A mappa teljes elérési útvonalát meg kell adni, ha nem található a megfelelő helyen. Az alábbi példa létrehoz egy /var/opt/mssql/userdata nevű mappát.

      mkdir /var/opt/mssql/userdata
      
    3. Csatlakoztassa az iSCSI logikai kötetet az előző lépésben létrehozott mappába. Ha sikeres, nem kap visszaigazolást.

      mount /dev/<VolumeGroupName>/<LogicalVolumeName> <FolderName>
      

      <VolumeGroupName> a kötetcsoport neve, <LogicalVolumeName> a létrehozott logikai kötet neve, <FolderName> pedig a mappa neve. A példa szintaxisa itt látható.

      mount /dev/FCIDataVG2/FCIDataLV2 /var/opt/mssql/userdata
      
    4. Változtassa meg a mssqláltal létrehozott mappa tulajdonjogát. Ha sikeres, nem kap visszaigazolást.

      chown mssql <FolderName>
      

      <FolderName> a létrehozott mappa neve. Itt egy példa látható.

      chown mssql /var/opt/mssql/userdata
      
    5. Módosítsa a létrehozott mappa csoportját mssql-ra. Ha sikeres, nem kap visszaigazolást.

      chown mssql <FolderName>
      

      <FolderName> a létrehozott mappa neve. Itt egy példa látható.

      chown mssql /var/opt/mssql/userdata
      
    6. Írja be a exit, hogy többé ne legyen a rendszergazda.

    7. A teszteléshez hozzon létre egy adatbázist a mappában. A következő szkript létrehoz egy adatbázist, környezeteket vált rá, ellenőrzi, hogy a fájlok az operációs rendszer szintjén léteznek-e, majd törli az ideiglenes helyet. A szkript futtatásához használhatja az SSMS-t vagy sqlcmd.

      DROP DATABASE TestDB;
      GO
      
      CREATE DATABASE TestDB
          ON (NAME = TestDB_Data, FILENAME = '/var/opt/mssql/userdata/TestDB_Data.mdf')
          LOG ON (NAME = TestDB_Log, FILENAME = '/var/opt/mssql/userdata/TestDB_Log.ldf');
      GO
      
      USE TestDB;
      GO
      

      Futtassa a következő parancsot a rendszerhéjban az új adatbázisfájlok megtekintéséhez.

      sudo ls /var/opt/mssal/userdata
      

      Itt a várt kimenet.

      lost+found TestDB_Data.mdf
      TestDB_Log.ldf
      

      Törölje az adatbázist a tisztításhoz.

      DROP DATABASE TestDB;
      GO
      
      sudo ls /var/opt/mssal/userdata
      

      Itt a várt kimenet.

      lost+found
      
    8. Válaszd le a megosztást

      sudo umount /dev/<VolumeGroupName>/<LogicalVolumeName> <FolderName>
      

      <VolumeGroupName> a kötetcsoport neve, <LogicalVolumeName> a létrehozott logikai kötet neve, <FolderName> pedig a mappa neve. A példa szintaxisa itt látható.

      sudo umount /dev/FCIDataVG2/FCIDataLV2 /var/opt/mssql/userdata
      
  14. Konfigurálja a kiszolgálót, hogy csak a Pacemaker aktiválhassa a kötetcsoportot.

    sudo lvmconf --enable-halvm --services -startstopservices
    
  15. Hozza létre a kiszolgálón található kötetcsoportok listáját. Azokat a lemezeket, amelyek nem iSCSI lemezek, a rendszer használja, például az operációs rendszer lemezéhez.

    sudo vgs
    
  16. Módosítsa a fájl /etc/lvm/lvm.conf aktiválási konfigurációs szakaszát. Konfigurálja a következő sort:

    volume_list = [ <ListOfVGsNotUsedByPacemaker> ]
    

    <ListOfVGsNotUsedByPacemaker> a 20. lépés kimenetéből származó, az FCI által nem használt kötetcsoportok listája. Mindegyik idézőjelbe kerül, és vesszővel elválasztva. Itt egy példa látható.

    Képernyőkép, amely egy volume_list lista értékét mutatja.

  17. A Linux indításakor csatlakoztatja a fájlrendszert. Annak érdekében, hogy csak a Pacemaker csatlakoztathassa az iSCSI-lemezt, újraépítse a fájlrendszer gyökérrendszerképét.

    Futtassa a következő parancsot, amely eltarthat néhány pillanatig. Ha sikeres, nem kap vissza üzenetet.

    sudo dracut -H -f /boot/initramfs-$(uname -r).img $(uname -r)
    
  18. Indítsa újra a kiszolgálót.

  19. Az FCI-ben részt vevő másik kiszolgálón hajtsa végre az 1–6. lépést. Ez bemutatja az iSCSI-célt az SQL Servernek.

  20. Hozza létre a kiszolgálón található kötetcsoportok listáját. Meg kell jelenítenie a korábban létrehozott kötetcsoportot.

    sudo vgs
    
  21. Indítsa el az SQL Servert, és ellenőrizze, hogy elindítható-e ezen a kiszolgálón.

    sudo systemctl start mssql-server
    sudo systemctl status mssql-server
    
  22. Állítsa le az SQL Servert, és ellenőrizze, hogy leállt-e.

    sudo systemctl stop mssql-server
    sudo systemctl status mssql-server
    
  23. Ismételje meg az 1–6. lépést az FCI-ben részt vevő egyéb kiszolgálókon.

Most már készen áll az FCI konfigurálására.