Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server Linux rendszeren
Ez a cikk bemutatja, hogyan lehet konfigurálni tartós memóriát (PMEM) az SQL Server 2019 (15.x) és későbbi verziókhoz Linuxon.
Overview
Az SQL Server 2019 (15.x) tartós memória támogatást ad hozzá több tárolóigényes művelet felgyorsításához.
Egy PMEM-tudatos fájlrendszernél a memória leképezés (mmap()) közvetlen hozzáférést biztosít a felhasználói tér alkalmazásainak a fájladatokhoz. Amikor egy fájlhoz memóriatérképet készítenek, az alkalmazás betöltési/tárolási utasításokat adhat ki, amelyek megkerülik a tárolóréteget.
Note
Ezt a közvetlen hozzáférést a host kiterjesztési alkalmazás nézőpontjától megvilágosodt fájlhozzáférési módszernek nevezik, amely így működik az SQL Server és a host operációs rendszer közötti interakció, az SQL Platform Absztrakciós Réteg (SQLPAL) segítségével.
Ez a cikk bemutatja, hogyan konfigurálhatod az állandó memóriát SQL Server on Linux-hoz.
Névterek létrehozása PMEM-eszközökhöz
Az eszközök konfigurálása
Linuxon használja a ndctl segédprogramot.
- Telepítse az
ndctl-t a PMEM-eszköz konfigurálásához. - Névtér létrehozása
ndctlhasználatával. A névterek összefonódva helyezkednek el a PMEM NVDIMM-ek között, és különböző típusú felhasználói tér hozzáférést biztosíthatnak az eszköz memóriarégióihoz.fsdaxaz SQL Server alapértelmezett és kívánt módja.
ndctl create-namespace -f -e namespace0.0 --mode=fsdax --map=dev
A fsdax mód oldalonként tárolja a rendszermemóriában lévő metaadatokat. Ez --map=dev az opció azért ajánlott, mert közvetlenül a névtérben tárolja a metaadatokat. A memóriában tárolt metaadatok kísérleti --map=mem jellegű.
A névtér ellenőrzéséhez használja a ndctl.
A mintakimenet a következő:
# ndctl list -N
{
"dev":"namespace0.0",
"mode":"fsdax",
"map":"dev",
"size":4294967296,
"sector_size":512,
"blockdev":"pmem0",
"numa_node":0
}
PMEM-eszköz létrehozása és csatlakoztatása
Például XFS-sel:
mkfs.xfs -f /dev/pmem0
mount -o dax,noatime /dev/pmem0 /mnt/dax
xfs_io -c "extsize 2m" /mnt/dax
Például az ext4-zel:
mkfs.ext4 -b 4096 -E stride=512 -F /dev/pmem0
mount -o dax,noatime /dev/pmem0 /mnt/dax
Technikai szempontok
- 2 MB-os blokklefoglalás XFS-hez vagy ext4-hez a korábban leírtak szerint
- A blokkok kiosztása és
mmapközötti eltérés észrevétlen visszaállást eredményez 4 KB-ra - A fájlméreteknek 2 MB többszörösének kell lenniük (modulo 2 MB)
- Ne tiltsa le az átlátszó nagy oldalakat (THP) (alapértelmezés szerint engedélyezve van a legtöbb disztribúcióban)
Miután ndctl konfiguráltad, létrehoztad és csatlakoztattad az eszközt, adatbázisfájlokat helyezhetsz bele, vagy létrehozhatsz egy új adatbázist.
Az SQL Server adatfájlokat (.mdf, ) és tempdb a PMEM eszközön lévő fájlokat a fsdax következő parancs módjában .ndftárolhatod. Ne használd ezt a módot az SQL Server napló (.ldf) fájlok tárolására, mert a tranzakciónapló olyan tárhelyet igényel, amely szektoratomi garanciákat nyújt:
ndctl create-namespace -f -e namespace0.0 --mode=fsdax --map=dev
Mielőtt beállítja a térképbeállítást az előző parancsban, tartsa szem előtt a következő pontokat:
- A legjobb teljesítmény érdekében az NVDIMM oldalbejegyzések eléréséhez és frissítéséhez az eszközhöz
-map=mem - Ha az NVDIMM kapacitása túl nagy (meghaladja az 512 GB-ot), állítsd
-map=devbe , ami befolyásolja az I/O áteresztőképességet és csökkenti a teljesítményt
SQL Server naplófájljai PMEM eszközökön konfigurálják a PMEM eszközöket szektor/blokk fordítási táblára (BTT). Ez a konfiguráció biztosítja azt a szektoratomiságot, amelyet az SQL Server naplófájlok igényelnek ehhez a tárolótechnológiához. Végezze el a munkaterhelés teljesítményének ellenőrzését. Hasonlítsa össze az SQL Server napló teljesítményét a munkaterheléséhez ezen megoldás és a legjobb kategóriás NVMe SSD-k között, majd válaszd ki azt, amelyik leginkább megfelel az igényeidnek.
ndctl create-namespace -f -e namespace0.0 --mode= sector
Kényszerített kiürítési viselkedés letiltása
Mivel a PMEM-eszközök O_DIRECT (közvetlen I/O) biztonságosak, letilthatja a kényszerített kiürítési viselkedést.
Note
Egy tárolórendszer biztosítja, hogy a gyorsított vagy fokozatosan jegyzett írások biztonságosak és tartósak legyenek azáltal, hogy garantálja, hogy az eszközre írt írások olyan közegen vannak, amely rendszerösszeomlások, interfész visszaállítások és áramszünetek között is fennmarad, és hogy maga a közeg, hardver redundáns.
Az adatbázis- (
.mdf- és.ndf) és tranzakciónapló (.ldf) fájlok alapértelmezés szerint nem használnakwritethroughésalternatewritethroughaz SQL Server 2017 (14.x) CU 6-os és újabb verzióiban, mert a kényszerített kiürítési viselkedést használják. A 3979-es nyomjelző letiltja az adatbázis- és tranzakciónaplók kényszerű ösztönzési viselkedését, és az ésalternatewritethroughlogikát használjawritethrough.Az SQL Server
FILE_FLAG_WRITE_THROUGHáltal megnyitott egyéb fájlok , mint például adatbázis-snapshotok, belső pillanatképek az adatbázis konzisztenciájának ellenőrzéséhez (DBCC CHECKDB), profiler trace fájlok és kiterjesztett eseménynyomkövető fájlok, az ésalternatewritethroughoptimalizációkat használjákwritethrough.
Az SQL Server 2017 (14.x) CU 6-ban bevezetett változásokról további információt KB 4131496című cikkben talál. A kényszerített egységhozzáférés (FUA) belső működéséről további információt a FUA belső működésecímű cikkben talál.
SQL Server és kényszerített egységhozzáférés (FUA) I/O-alrendszer képessége
Egyes támogatott Linux-disztribúciók az I/O alrendszer szintjén implementálják a Forced Unit Access (FUA) rendszert az adatok tartósságának biztosítása érdekében. Az SQL Server ezzel a képességgel hatékony és megbízható I/O-teljesítményt nyújt Linux-számítási feladatokhoz. További információ a LINUX-disztribúciók FUA-támogatásáról és az SQL Serverre gyakorolt hatásáról : SQL Server on Linux: Forced Unit Access (FUA) Internals.
A FUA támogatása az I/O-alrendszerben a SUSE Linux Enterprise Server 12 SP5, a Red Hat Enterprise Linux 8.0 és az Ubuntu 18.04 rendszerben jelent meg. Az SQL Server 2017 (14.x) CU 6-os és újabb verzióiban az alábbi konfigurációval engedélyezheti a magas teljesítményt és a hatékony I/O-t a FUA-val az SQL Serverben.
Az alábbi feltételek teljesülése esetén használja ezt az ajánlott konfigurációt:
SQL Server 2017 (14.x) CU 6 és újabb verziók
A FUA-képességet támogató Linux-disztribúció és verzió (a Red Hat Enterprise Linux 8.0-tól, a SUSE Linux Enterprise Server 12 SP5-től vagy az Ubuntu 18.04-től kezdve)
Note
Az SQL Server 2025 -től (17.x) kezdődően a SUSE Linux Enterprise Server (SLES) nem támogatott.
Az SQL Server Storage XFS fájlrendszere a Linux kernel 4.18-ás vagy újabb verzióiban.
az SQL Server Storage ext4 fájlrendszere linuxos kernel 5.6-os vagy újabb verzióiban.
Note
Használja az XFS fájlrendszert SQL Server-adatok és tranzakciós naplófájlok üzemeltetéséhez, ha a Linux kernel verziója kisebb, mint 5.6. A kernel 5.6-os verziójától kezdve választhat az XFS és az ext4 között a megadott követelmények alapján.
A FUA-képességeket támogató és konfigurált tárolási alrendszer és hardver
Ajánlott konfiguráció:
Engedélyezze a 3979 nyomkövetési jelzőt indítási paraméterként.
Használja a
mssql-confacontrol.writethrough = 1és acontrol.alternatewritethrough = 0konfigurálásához.
Szinte minden olyan konfiguráció esetében, amely nem felel meg az előző feltételeknek, használja az alábbi ajánlott konfigurációt:
Engedélyezze a 3982 nyomkövetési jelzőt indítási paraméterként (amely a Linux-ökoszisztémában az SQL Server alapértelmezett beállítása), és győződjön meg arról, hogy a 3979-as nyomkövetési jelző nincs engedélyezve indítási paraméterként.
Használja a
mssql-confacontrol.writethrough = 1és acontrol.alternatewritethrough = 1konfigurálásához.
A Kubernetesben üzembe helyezett SQL Server-tárolók FUA-támogatása
Az SQL Servernek tartósan csatolt tárolót kell használnia, és nem
overlayfs.A tárolónak az XFS-t vagy az ext4 fájlrendszereket kell használnia, és támogatnia kell a FUA-t (az ext4 nem támogatja a FUA-t a Linux kernelen az 5.6-os verziónál korábbi verziókban). A beállítás engedélyezése előtt működjön együtt a Linux disztribúciós és tárolási szállítójával annak érdekében, hogy az operációs rendszer és a tárolóalrendszer támogatja a FUA-beállításokat. A Kubernetesen az alábbi paranccsal kérdezheti le a fájlrendszer típusát, ahol
<pvc-name>aPersistentVolumeClaim:kubectl describe pv <pvc-name>A kimenetben keresse meg a
fstype-t, amely XFS-re van beállítva.Az SQL Server-podokat üzemeltető feldolgozó csomópontnak olyan Linux-disztribúciót és verziót kell használnia, amely támogatja a FUA-képességet (a Red Hat Enterprise Linux 8.0-tól, a SUSE Linux Enterprise Server 12 SP5-től vagy az Ubuntu 18.04-től kezdve).
Ha a fenti feltételek teljesülnek, használja az alábbi ajánlott FUA-beállításokat:
Engedélyezze a 3979 nyomkövetési jelzőt indítási paraméterként.
Használja a
mssql-confacontrol.writethrough = 1és acontrol.alternatewritethrough = 0konfigurálásához.