13 Ocak 2008 Pazar

GÜNÜN İPUÇU SUN SUNUCULARDA INTERNAL RAID DISKLERDEN HERHANGİ BİR TANESİNİN DEĞİŞTİRİLMESİ

Sun 880 ve /veya 890 serverlar da bulunan dört adet veya daha fazla internal disk ve Sun-D2 disk storageların üzerinde bulunan diskler software RAID-5 konfigrasyonun da kullanılabilmektedir. Bu disklerde global spare disk bırakılmadığı zamanlar, herhangi bir disk arızalandığında veri kaybı olmaması için o diskin sağlam bir disk ile ivedilikle değiştirilmesi gerekmektedir. Bunun için aşağıdaki işlemler root user'ı tarafından uygulanır.


Öncelikle arızalı diskin üzerindeki database silinmelidir.

# metadb -d c# t# d# s#

Disk cikarilmadan önce işletim sistemine aşağıdaki komut ile diskin cıkarılacağı belirtilir.

# cfgadm -c unconfigure c#::dsk/c#t#d#

Bozuk Hard Disk yuvasından çıkartılır ve yeni hard disk yuvaya takılır. Diskin sistem tarafından algılanması için aşağıdaki komutlar uygulanır.

#cfgadm -c configure c#::dsk/c#t#d#
# cfgadm -al

Format komutu ile diskin partitionlari diger RAID-5 grubundaki disklerle aynı şekle getirilir. Bundan sonraki komutlarla yeni takılan diskin senkronize olması sağlanır.

# metadevadm -u c#t#d#
# metadb -a c#t#d#s#
#metareplace -e c#t#d#s#

Bundan sonra metastat komutu ile senkronizasyonun tamamlanıp tamamlanmadığına bakılır.
aşağıda sun 880 sunucu üzerinde bu işlemleri yapılış sırası görülmektedir.


# format
AVAILABLE DISK SELECTIONS:
0. c0t0d0
/pci@1f,4000/scsi@3/sd@0,0
1. c0t1d0
/pci@1f,4000/scsi@3/sd@1,0
2. c0t2d0
/pci@1f,4000/scsi@3/sd@2,0
3. c0t3d0
/pci@1f,4000/scsi@3/sd@3,0

Disklerin konfigrasyon bilgileri alınır.

# cfgadm -al
Ap_Id Type Receptacle Occupant Condition
c0 scsi-bus connected configured unknown
c0::dsk/c0t0d0 disk connected configured unknown
c0::dsk/c0t1d0 disk connected configured unknown
c0::dsk/c0t2d0 disk connected configured unknown
c0::dsk/c0t3d0 disk connected configured unknown

Metadb komutu ile databaselerin nerelerde bulunduguna bakılır.

# metadb
flags first blk block count
a u 16 8192 /dev/dsk/c0t0d0s7
a u 16 8192 /dev/dsk/c0t1d0s7
a u 16 8192 /dev/dsk/c0t2d0s7
a u 16 8192 /dev/dsk/c0t3d0s7

metastat komutu ile değiştirilecek diskin üzerindeki alt mirror grupları belirlenir.

#metastat
d3: RAID
State: Needs Maintenance
Invoke: metareplace d3 c0t2d0s7
Interlace: 32 blocks
Size: 2077992 blocks (1014 MB)
Original device:
Size: 2081984 blocks (1016 MB)
Device Start Block Dbase State Reloc Hot Spare
c0t1d0s5 9754 No Okay Yes
c0t2d0s5 9754 No Maintenance Yes
c0t3d0s5 9754 No Okay Yes

Device Relocation Information:
Device Reloc Device ID
c0t0d0 Yes id1,sd@SSEAGATE_ST318203LSUN18G_LR795377000010210UN3
c0t1d0 Yes id1,sd@SFUJITSU_MAG3182L_SUN18G_00526873____
c0t2d0 Yes id1,sd@SFUJITSU_MAG3182L_SUN18G_00526202____
c0t3d0 Yes id1,sd@SFUJITSU_MAG3182L_SUN18G_00526842____

bozuk diskin üzerindeki database silinir.

# metadb -d c0t2d0s7

Işletim sisteminin diski unconfigure etmemesi sağlanır.

# cfgadm -c unconfigure c0::dsk/c0t2d0

Bozuk disk yuvasından çıkartılır ve sağlam disk yuvasına takılır. Işletim sisteminin yeni diski alğılayabilmesi için aşağıdaki komutlar çalıştırılır.

# cfgadm -c configure c0::dsk/c0t2d0

# cfgadm -al
Ap_Id Type Receptacle Occupant Condition
c0 scsi-bus connected configured unknown
c0::dsk/c0t0d0 disk connected configured unknown
c0::dsk/c0t1d0 disk connected configured unknown
c0::dsk/c0t2d0 disk connected configured unknown
c0::dsk/c0t3d0 disk connected configured unknown

format komutu ile yeni takılan diskin slice yapısı digger disklerle aynı seviyeye getirilir.
# metadevadm -u c0t2d0

Eski disk device bilgisi
id1,sd@SFUJITSU_MAG3182L_SUN18G_00526202____
Yeni disk device bilgisi
id1,sd@SSEAGATE_ST318203LSUN18G_LR7943000000W70708e0

Siline database ve alt mirror grupları yeniden oluşturulur.
# metadb -a c0t2d0s7
# metareplace -e d3 c0t2d0s5

Belli bir sure sonra metastat komutu ile bakıldığında aşağıdaki şekilde sistemin senkronize oldugu görülür

# metastat
d3: RAID
State: Okay
Interlace: 32 blocks
Size: 2077992 blocks (1014 MB)
Original device:
Size: 2081984 blocks (1016 MB)
Device Start Block Dbase State Reloc Hot Spare
c0t1d0s5 9754 No Okay Yes
c0t2d0s5 9754 No Okay Yes
c0t3d0s5 9754 No Okay Yes

Device Relocation Information:
Device Reloc Device ID
c0t1d0 Yes id1,sd@SFUJITSU_MAG3182L_SUN18G_00526873____
c0t2d0 Yes id1,sd@SSEAGATE_ST318203LSUN18G_LR7943000000W70708e0
c0t3d0 Yes id1,sd@SFUJITSU_MAG3182L_SUN18G_00526842

GÜNÜN İPUÇU DAHİLİ DİSKLERDEN HERHANGİ BİR TANESİNDE PROBLEM ÇIKTIĞINDA BU DİSKİN SAĞLAM BİR DİSK İLE DEĞİŞTİRİLMESİ

Dahili disklerden herhangi bir tanesinde problem çıktığında bu diskin sağlam bir disk ile değiştirilmesi aşamasında aşağıdaki işlemler sırayla gerçekleştirilir.
Öncelikle bozuk olan diskin bozuk olup olmadığı veya software ile düzeltilip düzeltilemeyecegi aşağıdaki komutla denenir. aşağıdaki tüm komutlar root user'ı ile uygulanır.
# metastat
d0: Mirror
Submirror 0: d10
State: Okay
Submirror 1: d20
State: Needs maintenance
Pass: 1
Read option: roundrobin (default)
Write option: parallel (default)
Size: 6295232 blocks (3.0 GB)
d10: Submirror of d0
State: Okay
Size: 6295232 blocks (3.0 GB)
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c0t0d0s0 0 No Okay Yes
d20: Submirror of d0
State: Needs maintenance
Invoke: metareplace d20 c0t2d0s0
Size: 6295232 blocks (3.0 GB)
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c0t2d0s0 0 No Maintenance Yes

metastat çıktısından anlaşılacağı üzere d20 submirror'ı bozulmuş.

#metareplace -f -e d0 c0t2d0s0
bu komut ile d20 submirror'ı d10 Submirror'ı ile sync edilmeye zorlanır. Eğer problem giderilmişve %100 sync olunmuşssa yazılımsal bir hata oluştugu düşünülebilir. Aksi takdirde sistem sync olmayacaktır. Diskler sync olmaz ise ilgili diskin değiştirilmesi için aşağıdaki işlemler uygulanır.

Öncelikle diskler mirror ise mirrordan çıkartılır.

# metadetach -f (-f means force)
Örnek :metadetach -f d10 d1
:metadetach -f d23 d2
#metaclear
Örnek :metaclear d1
:metaclear d2

#metastat
Volume gruba silinen disk üzerindeki alt mirror gruplarının dahil olmadığı görülür.

#cfgadm
Buradan alınan sonuç aşağıdaki komutta uygulanır.

# cfgadm -c configure c#::dsk/c#t#d#
Arızalı disk yuvasından çıkartılır. Sağlam disk boş yuvaya takılır. Aşağıdaki komut ile yeni takılan diskin işletim sistemi tarafından algılanması sağlanır. Disk tamamen kullanılamayacak durumda ise yerinden çıkarılma işlemi bu sırayla gerçekleşmeyecektir. Metadetach ve metaclear komutları farklı hatalar vererek olumsuz şekilde sonuçlanabilmektedir. Bu durumda arızalı disk seri numarası kontrol edilerek yerinden sökülür. Yerine yeni disk takılır. Bu durumda metadb silinir. Yeni diskin üzerinde meta db aşağıdaki komutla yaratılır.

# devfsadm -C

Bundan sonra sistem yeni diski tanıdığı format komutu ile görülür. Seri numarası fiziksel olarak kontrol edilmelidir.

# metadevadm

Format komutu ile yeni takılan diskin yapısı mirrorlu diskin yapisi ile ayni hale getirilir. Daha sonra mirrordan ayrılan parçalar yeniden oluşturulur.

#metadb -a c#t#d#s#

# metainit 1 1 c# t# d# s#

Örnek:
# metainit d1 1 1 c1t0d0s0

# metattach
# metattach d10 d1

Burada sökülen diskteki alt mirrorlar için yeniden alt mirror ların oluşturulması gerekmektedir. Metastat komutu ile yeni oluşturulan alt mirror gruplarının senkronize yüzdesi de bu komut ile görülebilir. Eğer disk üzerinde slicelar ayrılmadan disk çıkarılmış ise aşağıdaki komutlar ile sisteme yeni takılan disk sync olacak şekilde düzenlenir.

# metadevadm -u -r c#t#d#
# metareplace -e d1 /dev/dsk/c#t#d#s#
# metareplace -e d2 /dev/dsk/c#t#d#s#

Bu komutlardan sonra metastat komutu ile disklerin durumuna bakıldığında yeni sliceların sync işleminin başladığı görülecektir.

GÜNÜN İPUÇU SUNUCU ÜZERİNDEKİ İKİNCİ BİR NETWORK PORTUNUN AKTİFLEŞTİRİLMESİ

Sunucu üzerinde bulunan başka bir network portunun enable edilmesi

bash-2.05# ifconfig -a
lo0: flags=1000849 mtu 8232 index 1 inet 127.0.0.1 netmask ff000000
bash-2.05#

ifconfig komutu ile sistem bulunan portlar kontrol edilir.

bash-2.05# ifconfig ce1 plumb
var olan port sunucu üzerinde oluşturulur.

bash-2.05# ifconfig ce1 128.1.1.30 netmask 255.255.255.0 128.1.1.1 up
porta yeni IP vererek portun aktif olarak çalışması sağlanır bunun için sistem yeniden ifconfig komutu ile kontrol edilir.

bash-2.05# ifconfig -a
lo0: flags=1000849 mtu 8232 index 1 inet 127.0.0.1 netmask ff000000
ce1: flags=1000843 mtu 1500 index 2 inet 128.1.1.30 netmask ffffff00 broadcast 128.1.1.255 ether 0:3:ba:2c:e7:f8
bash-2.05#