Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:Linux üzerinde SQL Server
Bu makalede, Linux üzerinde bir yük devretme kümesi örneği (FCI) için iSCSI depolamanın nasıl yapılandırılır açıklanmaktadır.
iSCSI'yi yapılandırma
iSCSI, sunuculara hedef olarak bilinen bir sunucudan disk sunmak için ağ kullanır. iSCSI hedefine bağlanan sunucular, bir iSCSI başlatıcısının yapılandırılmasını gerektirir. Hedefteki disklere, yalnızca erişebilmesi gereken başlatıcıların bunu yapabilmesi için açık izinler verilir. Hedefin kendisi yüksek oranda kullanılabilir ve güvenilir olmalıdır.
Önemli iSCSI hedef bilgileri
Bu bölüm, kullandığınız kaynak türüne özgü olduğundan iSCSI hedefinin nasıl yapılandırılacağını kapsamasa da, küme düğümleri tarafından kullanılacak disklerin güvenliğinin yapılandırıldığından emin olun.
Linux tabanlı bir iSCSI hedefi kullanılıyorsa, hedef hiçbir zaman FCI düğümlerinde yapılandırılmamalıdır. Performans ve kullanılabilirlik için, iSCSI ağları hem kaynak hem de istemci sunucularında normal ağ trafiği tarafından kullanılan ağlardan ayrı olmalıdır. iSCSI için kullanılan ağlar hızlı olmalıdır. Ağın bazı işlemci bant genişliğini tükettiğine dikkat edin, bu nedenle normal bir sunucu kullanıyorsanız buna göre plan yapın.
Hedefte tamamlandığından emin olunması gereken en önemli şey, oluşturulan disklere uygun izinlerin atanması ve böylece yalnızca FCI'ye katılan sunucuların bunlara erişimi olmasıdır. Microsoft iSCSI hedefinden bir örnek gösterilmektedir; burada linuxnodes1, oluşturulan isimdir ve bu durumda, düğümlerin IP adresleri NewFCIDisk1.vhdx onlara görünecek şekilde atanmıştır.
Talimatlar
Bu bölüm, FCI için düğüm olarak hizmet veren sunucularda bir iSCSI başlatıcısının nasıl yapılandırıldığını kapsar. Yönergeler Red Hat Enterprise Linux (RHEL) ve Ubuntu'da olduğu gibi çalışmalıdır.
Desteklenen dağıtımlar için iSCSI başlatıcısı hakkında daha fazla bilgi için aşağıdaki bağlantılara bakın:
FCI yapılandırmasına katılacak sunuculardan birini seçin. Hangisi olduğu önemli değil. iSCSI ayrılmış bir ağda olmalıdır, bu nedenle iSCSI'yi bu ağı tanıyacak ve kullanacak şekilde yapılandırın.
sudo iscsiadm -m iface -I <iSCSIIfaceName> -o new'ı çalıştırın, burada<iSCSIIfaceName>ağ için benzersiz veya kolay bir isimdir. Aşağıdaki örnekteiSCSINICkullanılır:sudo iscsiadm -m iface -I iSCSINIC -o newBeklenen çıktı budur.
New interface iSCSINIC added/var/lib/iscsi/ifaces/iSCSIIfaceNamedüzenleyin. Aşağıdaki değerlerin tamamen doldurulduğundan emin olun:-
iface.net_ifacename, işletim sisteminde görüldüğü gibi ağ kartının adıdır. -
iface.hwaddress, aşağıdaki arabirim için oluşturulacak benzersiz adın MAC adresidir. iface.ipaddressiface.subnet_Mask
Aşağıdaki örne bakın:
-
iSCSI hedefini bulun.
sudo iscsiadm -m discovery -t sendtargets -I <iSCSINetName> -p <TargetIPAddress>:<TargetPort><iSCSINetName>ağ için benzersiz/kolay addır,<TargetIPAddress>iSCSI hedefinin IP adresidir ve<TargetPort>iSCSI hedefinin bağlantı noktasıdır.Beklenen çıktı budur.
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-targetHedefe giriş yapın.
sudo iscsiadm -m node -I <iSCSIIfaceName> -p TargetIPAddress -l<iSCSIIfaceName>, ağın benzersiz/kolay adıdır ve<TargetIPAddress>iSCSI hedefinin IP adresidir.Beklenen çıktı budur.
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.iSCSI hedefine bağlantı olup olmadığını denetleyin.
sudo iscsiadm -m sessionÇıktı aşağıdaki örneğe benzer:
tcp: [1] 10.105.16.7:3260,1 iqn.1991-05.com.contoso:dcl-linuxnodes1-target (non-flash)iSCSI'ya bağlı diskleri denetleyin.
sudo grep "Attached SCSI" /var/log/messages
iSCSI diskinde fiziksel birim oluşturun.
sudo pvcreate /dev/<devicename><devicename>, önceki adımdaki cihazın adıdır.iSCSI diskinde bir birim grubu oluşturun. Tek bir birim grubuna atanan diskler havuz veya koleksiyon olarak görülür.
sudo vgcreate <VolumeGroupName> /dev/devicename<VolumeGroupName>birim grubunun adıdır ve<devicename>6. Adımdaki cihazın adıdır.Disk için mantıksal hacmi oluşturun ve doğrulayın.
sudo lvcreate -Lsize -n <LogicalVolumeName> <VolumeGroupName><size>oluşturulacak birimin boyutudur ve G (gigabayt), T (terabayt) vb. ile belirtilebilir,<LogicalVolumeName>mantıksal birimin adıdır ve<VolumeGroupName>önceki adımdaki birim grubunun adıdır.Beklenen çıktı budur.
Logical volume "FCIDataLV1" created.Aşağıdaki örnek 25 GB'lık bir birim oluşturur.
Oluşturulan LVM'yi görmek için
sudo lvsyürütün.Mantıksal birimi desteklenen bir dosya sistemiyle biçimlendirin. ext4 için aşağıdaki örneği kullanın:
sudo mkfs.ext4 /dev/<VolumeGroupName>/<LogicalVolumeName><VolumeGroupName>, önceki adımdaki birim grubunun adıdır.<LogicalVolumeName>, önceki adımdaki mantıksal birimin adıdır.Sistem veritabanları veya varsayılan veri konumunda depolanan herhangi bir şey için şu adımları izleyin. Aksi takdirde, 13. 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-serverTamamen süper kullanıcı olacak şekilde geçiş yapın. Başarılı olursa herhangi bir bildirim almazsınız.
sudo -imssqlkullanıcı olarak geçiş yapın. Başarılı olursa herhangi bir bildirim almazsınız.su mssqlSQL Server verilerini ve günlük dosyalarını depolamak için geçici bir dizin oluşturun. Başarılı olursa herhangi bir bildirim almazsınız.
mkdir <TempDir><TempDir>klasörün adıdır. Aşağıdaki örnekte /var/opt/mssql/TempDir adlı bir klasör oluşturulur.mkdir /var/opt/mssql/TempDirSQL Server verilerini ve günlük dosyalarını geçici dizine kopyalayın. Başarılı olursa herhangi bir bildirim almazsınız.
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ımlardan gelen klasörün adıdır.Dosyaları mevcut SQL Server veri dizininden silin. Başarılı olursa herhangi bir bildirim almazsınız.
rm - f /var/opt/mssql/data/*Dosyaların silindiğini doğrulayın. Aşağıdaki görüntüde c ile h arasında tüm sıranın bir örneği gösterilmektedir.
ls /var/opt/mssql/dataexitkullanıcıya geri dönmek içinrootyazın.iSCSI mantıksal birimini SQL Server veri klasörüne bağlayın. Başarılı olursa herhangi bir bildirim almazsınız.
mount /dev/<VolumeGroupName>/<LogicalVolumeName> /var/opt/mssql/data<VolumeGroupName>birim grubunun adı,<LogicalVolumeName>ise oluşturulan mantıksal birimin adıdır. Aşağıdaki örnek söz dizimi, önceki komutun birim grubu ve mantıksal birimiyle eşleşir.mount /dev/FCIDataVG1/FCIDataLV1 /var/opt/mssql/dataBağlamanın sahibini
mssqlolarak değiştirin. Başarılı olursa herhangi bir bildirim almazsınız.chown mssql /var/opt/mssql/dataMontaj grubunun sahipliğini
mssqlolarak değiştirin. Başarılı olursa herhangi bir bildirim almazsınız.chgrp mssql /var/opt/mssql/datamssqlkullanıcıya geçin. Başarılı olursa herhangi bir bildirim almazsınız.su mssqlGeçici dizinindeki dosyaları kopyalayın
/var/opt/mssql/data. Başarılı olursa herhangi bir bildirim almazsınız.cp /var/opt/mssql/TempDir/* /var/opt/mssql/dataDosyaların orada olduğunu doğrulayın.
ls /var/opt/mssql/dataexitolmaması içinmssqlgirin.exitolmaması içinrootgirin.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-serverSQL Server'ı durdurun ve kapatıldığını doğrulayın.
sudo systemctl stop mssql-server sudo systemctl status mssql-server
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 14. Adım'a atlayın.
Süper kullanıcı olarak geçiş yapın. Başarılı olursa herhangi bir bildirim almazsınız.
sudo -iSQL 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/userdata adlı bir klasör oluşturur.mkdir /var/opt/mssql/userdataÖnceki adımda oluşturulan klasöre iSCSI mantıksal birimini bağlayın. Başarılı olursa herhangi bir bildirim almazsınız.
mount /dev/<VolumeGroupName>/<LogicalVolumeName> <FolderName><VolumeGroupName>birim grubunun adıdır,<LogicalVolumeName>oluşturulan mantıksal birimin adıdır ve<FolderName>klasörün adıdır. Örnek söz dizimi burada gösterilmiştir.mount /dev/FCIDataVG2/FCIDataLV2 /var/opt/mssql/userdataOluşturulan klasörün sahipliğini
mssqlolarak değiştirin. Başarılı olursa herhangi bir bildirim almazsınız.chown mssql <FolderName><FolderName>, oluşturulan klasörün adıdır. Burada bir örnek gösterilmiştir.chown mssql /var/opt/mssql/userdataOluşturulan klasörün grubunu
mssqlolarak değiştirin. Başarılı olursa herhangi bir bildirim almazsınız.chown mssql <FolderName><FolderName>, oluşturulan klasörün adıdır. Burada bir örnek gösterilmiştir.chown mssql /var/opt/mssql/userdataArtık süper kullanıcı olmaması için
exityazın.Test etmek için bu klasörde bir veritabanı oluşturun. Aşağıdaki betik bir veritabanı oluşturur, bağlamı ona değiştirir, dosyaların işletim sistemi düzeyinde mevcut olup olmadığını doğrular ve sonra geçici konumu siler. Bu betiği çalıştırmak için SSMS veya sqlcmd kullanabilirsiniz.
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; GOYeni veritabanı dosyalarını görmek için kabukta aşağıdaki komutu çalıştırın.
sudo ls /var/opt/mssal/userdataBeklenen çıktı budur.
lost+found TestDB_Data.mdf TestDB_Log.ldfTemizlemek için veritabanını silin.
DROP DATABASE TestDB; GOsudo ls /var/opt/mssal/userdataBeklenen çıktı budur.
lost+foundPaylaşımı kaldır
sudo umount /dev/<VolumeGroupName>/<LogicalVolumeName> <FolderName><VolumeGroupName>birim grubunun adıdır,<LogicalVolumeName>oluşturulan mantıksal birimin adıdır ve<FolderName>klasörün adıdır. Örnek söz dizimi burada gösterilmiştir.sudo umount /dev/FCIDataVG2/FCIDataLV2 /var/opt/mssql/userdata
Sunucuyu yalnızca Pacemaker'ın birim grubunu etkinleştirebilmesi için yapılandırın.
sudo lvmconf --enable-halvm --services -startstopservicesSunucudaki birim gruplarının listesini oluştur. iSCSI diski dışındaki listelenen öğelerin tümü, işletim sistemi diski gibi sistem tarafından kullanılır.
sudo vgs/etc/lvm/lvm.conf dosyasının etkinleştirme yapılandırma bölümünü değiştirin. Aşağıdaki satırı yapılandırın:
volume_list = [ <ListOfVGsNotUsedByPacemaker> ]<ListOfVGsNotUsedByPacemaker>, 20. Adımın çıktısından FCI tarafından kullanılmayan birim gruplarının listesidir. Her birini tırnak içine alın ve virgülle ayırın. Burada bir örnek gösterilmiştir.Linux başlatıldığında dosya sistemini bağlar. Yalnızca Pacemaker'ın iSCSI diskini bağlayabilmesini sağlamak için kök dosya sistemi görüntüsünü yeniden oluşturun.
Tamamlanması birkaç dakika sürebilir, aşağıdaki komutu çalıştırın. Başarılı olursa geri ileti alamazsınız.
sudo dracut -H -f /boot/initramfs-$(uname -r).img $(uname -r)Sunucuyu yeniden başlatın.
FCI'ya katılacak başka bir sunucuda 1 - 6. Adımları gerçekleştirin. Bu, iSCSI hedefini SQL Server'a sunar.
Sunucudaki birim gruplarının listesini oluştur. Daha önce oluşturulan birim grubunu göstermelidir.
sudo vgsSQL Server'ı başlatın ve bu sunucuda başlatılabildiğini doğrulayın.
sudo systemctl start mssql-server sudo systemctl status mssql-serverSQL Server'ı durdurun ve kapatıldığını doğrulayın.
sudo systemctl stop mssql-server sudo systemctl status mssql-serverFCI'ye katılacak diğer tüm sunucularda 1- 6 arası adımları yineleyin.
Artık FCI'yi yapılandırmaya hazırsınız.
İlgili içerik
- Yük devretme kümesi örneğini yapılandırma - Linux üzerinde SQL Server (RHEL)
- SQL Server için RHEL yük devretme kümesi örneğini (FCI) çalıştırma
- SQL Server için SLES paylaşılan disk kümesini yapılandırma