Minggu, 06 September 2009

Recovery Raid 1 di centos

Panduan recovery RAID 1 (mirror) Linux Print E-mail
Written by ari
Tuesday, 19 September 2006
Image Di artikel sebelumnya kita telah belajar cara membuat server dengan RAID 1 (mirror) menggunakan solusi software Raid Linux. Dan juga kita sempat mensimulasikan kegagalan salah satu harddisk. Namun bagaimana jika kita BENAR2 mengalami kegagalan harddisk? Jangan panik, berikut ini langkah2nya. Tapi sebelumnya dari mana kita tahu bahwa salah satu harddisk di raid array kita gagal/rusak? Inilah yang menenangkannya: Linux akan mengirimkan email secara otomatis ke kita jika salah satu raid arraynya gagal.

Seperti ini emailnya:

DegradedArray event on /dev/md0:server-mail3.kantorku.kom
From: mdadm monitoring < root@kantorku.komThis e-mail address is being protected from spam bots, you need JavaScript enabled to view it >
To: root@kantorku.komThis e-mail address is being protected from spam bots, you need JavaScript enabled to view it
Date: Yesterday 18:53:45

This is an automatically generated mail message from mdadm
running on server-mail3.kantorku.kom

A DegradedArray event had been detected on md device /dev/md0.

Faithfully yours, etc.


Secara garis besar, langkah2 penanganan kejadiah seperti ini adalah:
1. Jangan panik. Grogi boleh, tapi jangan berlebihan. Konsentrasilah penuh, terutama pada saat partisi harddisk.
2. Cek status RAID arraynya.
3. Coba rebuild kembali arraynya.
4. Bila gagal, berarti ada kerusakan di fisik harddisknya.
5. Siapkan harddisk pengganti yang identik merek, model dan kapasitasnya.
6. Partisi harddisk pengganti tersebut secara identik dengan scheme yang kita gunakan.
7. Rebuild kembali raid arraynya.
8. Test harddisk baru tersebut.

Baiklah kita jabarkan lebih lanjut langkah2nya:
1. Jangan panik. Deg2an wajar, tapi tetap tenang. Percaya diri bahwa kejadian seperti ini cepat atau lambat pasti terjadi. Tinggal tergantung bagaimana kita meresponnya apakah siap atau tidak, dan sebagai admin Linux yang baik tentu kita sudah siap. Siapkan referensi command2 yang akan diperlukan bila belum hapal, dan juga bukalah 2 buah terminal untuk memudahkan kita memonitor apa yang terjadi. Baca setiap command yang kita ketikkan 2-3 kali sebelum menekan tombol enter. Terutama jangan sampai TERTUKAR antara sda dan sdb. Bila ternyata harddisk yang rusak adalah sda, kemudian kita tidak sengaja justru mempartisi sdb, hilanglah semuanya. Berkonsentrasilah, bila perlu bilang kepada rekan lain bahwa untuk sementara waktu kita tidak menerima telpon dahulu dari siapapun, atau sebaiknya lakukan recovery ini di malam hari di saat tidak ada yang dapat mengganggu kita (kecuali bila kantor kamu ada makhluk halusnya).

2. Cek status RAID arraynya.
Login ke server dan gunakan command ini untuk mengecek status raid array:

[root@server-mail3 ~]# cat /proc/mdstat

Personalities : [raid1]
md1 : active raid1 sdb2[1]
243995136 blocks [2/1] [_U]

md0 : active raid1 sdb1[1]
200704 blocks [2/1] [_U]

unused devices:

Terlihat bahwa sda tidak aktif di dalam raid array, baik di array md0 maupun md1.

3. Kita bisa mencoba untuk merebuild kembali raid arraynya.
[root@server-mail3 ~]# mdadm /dev/md0 -a /dev/sda1
[root@server-mail3 ~]# mdadm /dev/md1 -a /dev/sda2


4. Bila gagal, berarti ada kerusakan di fisik harddisknya. Dalam kasus saya ini, md0 berhasil di rebuild, namun ketika merebuild md1, ternyata server restart sendiri. Dicoba beberapa kali tetap restart terus. Bila terjadi hal ini, maka untuk mencegah kerusakan lebih lanjut akibat terjadinya restart terus menerus, maka kita mesti menonaktifkan sda dari raid array:

[root@server-mail3 ~]# mdadm /dev/md0 -f /dev/sda1
[root@server-mail3 ~]# mdadm /dev/md1 -f /dev/sda2

Kemudian kita remove sda dari raid array:
[root@server-mail3 ~]# mdadm /dev/md0 -r /dev/sda1
[root@server-mail3 ~]# mdadm /dev/md1 -r /dev/sda2

5. Siapkan harddisk pengganti yang identik merek, model dan kapasitasnya. Hal ini penting sebab bila harddisk pengganti itu ternyata kapasitasnya lebih kecil, maka kita tidak akan dapat merebuild raid arraynya secara sempurna.

6. Perhatian, di langkah ke-6 dibutuhkan konsentrasi tinggi. Kini kita mempartisi harddisk pengganti ini. Jangan lupa dipasang dulu ke servernya. Hehe..
6a. Tunggu dulu, dari mana kita tahu bagaimana skema partisinya? Kita bisa melihatnya dari harddisk yang masih bekerja bagus, yaitu sdb:

[root@server-mail3 ~]# fdisk -l /dev/sdb
Disk /dev/sdb: 250.0 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sdb1 * 1 25 200781 fd Linux raid autodetect
/dev/sdb2 26 30401 243995220 fd Linux raid autodetect


Dari data di atas kita dapat mengetahui bahwa:
- Partisi sdb1 dimulai dari cylinder 1 s/d 25, jenis partisinya adalah fd (Linux raid)
- Partisi sdb2 dimulai dari cylinder 26 s/d 30401, jenis partisinya adalah fd (Linux raid)

6b. Mari kita mulai mempartisi harddisk pengganti tersebut. Ingat, tetap konsentrasi.
- Sebelumnya kita pastikan bahwa benar sda belum ada partisi apapun:
[root@server-mail3 ~]# fdisk -l /dev/sda

Disk /dev/sda: 250.0 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sda doesn't contain a valid partition table

- Kita mulai partisi sda:
[root@server-mail3 ~]# fdisk /dev/sda
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.


The number of cylinders for this disk is set to 30401.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help):

Mari kita ketik m untuk melihat command apa saja yang ada.

Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)

Dari help di atas terlihat bahwa untuk membuat partisi baru commandnya adalah: n
Kita buat partisi sda1:
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-30401, default 1): 1
Last cylinder or +size or +sizeM or +sizeK (1-30401, default 30401): 25

Kemudian partisi sda2:
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (26-30401, default 26):
Using default value 26
Last cylinder or +size or +sizeM or +sizeK (26-30401, default 30401):
Using default value 30401

6c. Selanjutnya kita mesti mendefinisikan jenis partisinya, dalam hal ini adalah: fd (Linux raid auto). Kita lihat daftarnya bila perlu.

Command (m for help): t
Partition number (1-4): 1
Hex code (type L to list codes): L

0 Empty 1e Hidden W95 FAT1 75 PC/IX be Solaris boot
1 FAT12 24 NEC DOS 80 Old Minix bf Solaris
2 XENIX root 39 Plan 9 81 Minix / old Lin c1 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 82 Linux swap c4 DRDOS/sec (FAT-
4 FAT16 <32m>
5 Extended 41 PPC PReP Boot 84 OS/2 hidden C: c7 Syrinx
6 FAT16 42 SFS 85 Linux extended da Non-FS data
7 HPFS/NTFS 4d QNX4.x 86 NTFS volume set db CP/M / CTOS / .
8 AIX 4e QNX4.x 2nd part 87 NTFS volume set de Dell Utility
9 AIX bootable 4f QNX4.x 3rd part 8e Linux LVM df BootIt
a OS/2 Boot Manag 50 OnTrack DM 93 Amoeba e1 DOS access
b W95 FAT32 51 OnTrack DM6 Aux 94 Amoeba BBT e3 DOS R/O
c W95 FAT32 (LBA) 52 CP/M 9f BSD/OS e4 SpeedStor
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi eb BeOS fs
f W95 Ext'd (LBA) 54 OnTrackDM6 a5 FreeBSD ee EFI GPT
10 OPUS 55 EZ-Drive a6 OpenBSD ef EFI (FAT-12/16/
11 Hidden FAT12 56 Golden Bow a7 NeXTSTEP f0 Linux/PA-RISC b
12 Compaq diagnost 5c Priam Edisk a8 Darwin UFS f1 SpeedStor
14 Hidden FAT16 <3>
16 Hidden FAT16 63 GNU HURD or Sys ab Darwin boot f2 DOS secondary
17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fd Linux raid auto
18 AST SmartSleep 65 Novell Netware b8 BSDI swap fe LANstep
1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid ff BBT
1c Hidden W95 FAT3

Hex code (type L to list codes): fd
Changed system type of partition 1 to fd (Linux raid autodetect)

Yang sda2 juga:

Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): fd
Changed system type of partition 2 to fd (Linux raid autodetect)

Jangan lupa kita setel juga partisi sda1 sebagai boot partition:
Command (m for help): a
Partition number (1-4): 1

6d. Setelah selesai, dan yakin bahwa kita tidak melakukan kesalahan, maka kita save skema partisi yang kita buat ini.
Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

6e. Kernel menyimpan informasi partisi di memory, yang dibaca pada saat booting. Bila kita tidak ingin melakukan booting ulang, maka kita bisa menggunakan command ini untuk memaksa kernel membaca kembali table partisi:

partprobe

6f. Kita cek bahwa kernel telah mengenali partisi yang baru di sda:
[root@server-mail3 ~]# fdisk -l /dev/sda

Disk /dev/sda: 250.0 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 * 1 25 200781 fd Linux raid autodetect
/dev/sda2 26 30401 243995220 fd Linux raid autodetect



7. Kini saatnya kita membangun kembali raid array mirror kita. Di step ini juga diperlukan konsentrasi tinggi. Jangan sampai salah ketik.

7a. Kita lihat bahwa raid array belum terbuild:
[root@server-mail3 ~]# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sdb2[1]
243995136 blocks [2/1] [_U]

md0 : active raid1 sdb1[1]
200704 blocks [2/1] [_U]

unused devices:

7b. Kita add /dev/sda1 ke dalam array /dev/md0:
[root@server-mail3 ~]# mdadm /dev/md0 -a /dev/sda1
mdadm: hot added /dev/sda1

Kita dapat lihat proses rebuildingnya:
[root@server-mail3 ~]# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sdb2[1]
243995136 blocks [2/1] [_U]

md0 : active raid1 sda1[2] sdb1[1]
200704 blocks [2/1] [_U]
[==============>......] recovery = 74.1% (150464/200704) finish=0.0min speed=37616K/sec

Setelah beberapa saat, /dev/md0 telah selesai di rebuild:
[root@server-mail3 ~]# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sdb2[1]
243995136 blocks [2/1] [_U]

md0 : active raid1 sda1[0] sdb1[1]
200704 blocks [2/2] [UU]

unused devices:


7c. Kemudian kita add juga /dev/sda2 ke /dev/md1:

[root@server-mail3 ~]# mdadm /dev/md1 -a /dev/sda2
mdadm: hot added /dev/sda2

Segera dia akan otomatis merebuild arraynya:
[root@server-mail3 ~]# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sda2[2] sdb2[1]
243995136 blocks [2/1] [_U]
[>....................] recovery = 0.2% (606656/243995136) finish=80.2min speed=50554K/sec
md0 : active raid1 sda1[0] sdb1[1]
200704 blocks [2/2] [UU]

unused devices:


Di server saya, proses rebuild mirror untuk harddisk sebesar 250GB memerlukan waktu 1,5 jam.

7d. Setelah selesai, maka di /proc/mdstat kita dapat melihat bahwa array telah sempurna kembali:
[root@server-mail3 ~]# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sda2[0] sdb2[1]
243995136 blocks [2/2] [UU]

md0 : active raid1 sda1[0] sdb1[1]
200704 blocks [2/2] [UU]

unused devices:

Juga di /var/log/messages ada pesan bahwa RAID 1 telah selesai direbuild:
Sep 18 20:49:37 server-mail3 kernel: md: md1: sync done.
Sep 18 20:49:37 server-mail3 kernel: RAID1 conf printout:
Sep 18 20:49:37 server-mail3 kernel: --- wd:2 rd:2
Sep 18 20:49:37 server-mail3 kernel: disk 0, wo:0, o:1, dev:sda2
Sep 18 20:49:37 server-mail3 kernel: disk 1, wo:0, o:1, dev:sdb2

INSTALL GRAB


masuk ke Grub command line:

# grub

Install grub pada MBR:

grub> device (hd0) /dev/sdb (or /dev/hdb for IDE drives)

grub> root (hd0,0)
grub> setup (hd0)
grub>quit


8. Test harddisk baru tersebut dengan mencopot atau menonaktifkan sdb.

Resources:

  1. ttp://linux2.arinet.org

  2. http://www.kernelhardware.org

Buat Aplikasi dengan PHP + Ajax

Segera

Menghapus CA dari Active Directory

Untuk Menghapus Semua Certification Services objects from Active Directory:

1.Start "Active Directory Sites and Services".

2.Click "View" menu option, and pilih "Show Services" Node.

3.Klik pada tanda + "Services", dan Klik pada tanda + "Public Key Services".

4.Pilih node "AIA".

5.Pada panel sebelah kanan, arahkan pada objek "certificateAuthority" . Delete objectnya.

6.pilih node "CDP".

7.Pada panel sebelah kanan, arahkan pada objek "CDP" . Delete container dan objects yang ada di dalamnya.

8.Pilih Node "Certification Authorities".

9.Pada panel sebelah kanan, arahkan pada objek "Certification Authorities" . Delete objects yang ada di dalamnya.

10.Pilih Node "Enrollment Services".

11.Pada panel sebelah kanan, arahkan pada objek "Enrollment Services" . Delete objects yang ada di dalamnya.

12.Pilih Node"Certificate Templates".

13.Pada panel sebelah kanan, arahkan pada objek "Certificate Templates" . Delete semua certificate yang ada di dalamnya.

14.Click the "Public key Services" node and locate the "NTAuthCertificates" object.

15.jika tidak ada Enterprise or Stand-alone CAs lain yang terinstall di dalam Forest, delete objectnya, atau biarkan saja.

16. gunakan "Active Directory Sites and Services" or "Repadmin" dari command Windows resource kit to force replication



Domain Controller Cleanup

buka command from ketikan perintah dibawah tapa kutip

"certutil -dcinfo deleteBad"


Update Group Policies

buka command from ketikan perintah dibawah tapa kutip

"gpupdate /target:computer"

Import - Export dengan VMWare

Segera

Buat FTP Server dengan VSFTPD

Segera

Buat Mail Server dengan Qmail

Segera

Publish Exchange dengan ISA2006

Segera

Installasi Certificate di windows 2003

Install Windows Server 2003 CA

Step 1: Install the IIS Service

In order to install the CA you will first need to install IIS on a Windows Server 2003 computer. On Windows Server 2003 IIS is not installed with the default Windows 2003 installation.

1.

Click Start > Control Panel > Add or Remove Programs.
2.

In Add or Remove Programs, click Add/Remove Windows Components.
3.

Under Components, click on Application Server (but do NOT select it) and press on the Details button.
4.

In the Application Server window click to select IIS and click Ok.

5.

Click Next

6.

After the wizard completes the installation, click Finish.

Step 2: Install the CA Service

To install the CA service perform the following steps:

1.

Click Start > Control Panel > Add or Remove Programs.
2.

In Add or Remove Programs, click Add/Remove Windows Components.
3.

Under Components, select Certificate Services.



5.

You will get a warning about domain membership and computer renaming constraints, and then click Yes.

6.

On the CA Type page, click Enterprise root CA, and then click Next.

7.

On the CA Identifying Information page, in the Common name for this CA box, type the name of the server, and then click Next.

8.

On the Certificate Database Settings page, accept the defaults in the Certificate database box and the Certificate database log box, and then click Next.

9.

You will get a prompt to stop Internet Information Services, click Yes.
10.

Enable Active Server Pages (ASPs), by clicking Yes.
11.

When the installation process is completed click Finish.

Step 3: Obtain a User Digital Certificate from the CA

After installing and configuring the CA on your domain you will now need to ask your users (at least those who will require message security) to enroll for a Digital Certificate.

In order to obtain a Digital Certificate from the CA please follow the steps outlined in the Obtain a Digital Certificate from an Online Certificate Authority (CA) article.

Buat Raid 1 Di Centos

INSTALLASI CENTOS, RAID, DAN LVM

Proses installasi Centos sebagian besar sama seperti distro lainnya. Dapat kita lihat di screenshot-screenshot berikut ini. Cuma nantinya kita akan lebih detail di langkah pembuatan partisi.

Karena screenshotnya cukup banyak, yang akan ditampilkan disini adalah yang berhubungan dengan setting RAID dan LVMnya saja. Untuk yang proses installasi lengkapnya dapat dilihat di PDFnya yang bisa di download dari menu download.

Image
Seperti dapat dilihat, kondisi kedua harddisk masih kosong tanpa partisi. Dan terlihat bahwa ukuran kedua harddisk berbeda sedikit. Kita klik tombol New untuk mulai membuat partisi. Kita akan membuat 2 buah partisi, yaitu /boot dan satu lagi untuk Raid dan LVMnya.
Image
Mengapa kita membuat partisi /boot terpisah dari partisi lainnya? Hal ini karena /boot tidak dapat berada dalam LVM. Ok, kita pilih jenis file systemnya software RAID, dan pilih salah satu harddisk yg ingin kita partisi. Ukurannya sebenarnya 100MB cukup, tapi untuk amannya kita beri saja 300MB. Dan jangan lupa kita berikan option Force to be a primary partition.
Image
Kemudian kita juga buat partisi sisanya. Kita pakai semua space harddisknya dengan mengklik option Fill to maximum allowable size. Kalian pasti bertanya, kenapa kita mempartisi sdb dulu? Karena sdb lebih kecil ukurannya dari sda, jadi nantinya kita bisa mengetahui berapa besar yang harus kita partisi di sda.
Image
Ini adalah skema partisi setelah sdb selesai kita partisi. Terlihat bahwa belum ada mount pointnya. Kita lakukan ini nanti. Selanjutnya kita akan partisi sda sama seperti langkah di sdb yah.

Image

Image
Nah, di partisi kedua sda (sda2), kita jangan pilih Fill to maximum allowable size, tetapi kita sesuaikan dengan besarnya sdb2.
Image
Setelah selesai di kedua buah harddisk, terlihat bahwa di sda masih ada sisa space. Tidak apa-apa. Selanjutnya kita setup RAID devicenya. Klik tombol RAID.
Image
Kita pilih Create a RAID device.
Image
Kita berikan nama mount pointnya yaitu /boot, Filesystemnya pakai yang ext3, RAID device biarkan default saja md0, Nah, RAID Level pilih yang 1 yaitu mirroring. Pilih pasangan partisinya yaitu sda1 dan sdb1.
Image
Sama seperti ketika membuat md0, kita pilih pasangan partisinya, yaitu sda2 dan sdb2, tapi kini kita pilih filesystemnya LVM, dan jangan lupa tetap pilih RAID levelnya RAID 1.
Image
Setelah selesai membuat RAID device, maka akan dapat kita lihat telah ada md0 dan md1. Bedanya antara keduanya adalah md0 telah memiliki mount point, sedangkan md1 belum. Nah, langkah selanjutnya kita membuat partisi di LVM dan mount pointnya. Kita klik tombol LVM.
Image
Setelah kita klik tombol LVM, maka kita akan melihat layar ini. Sedikit teori LVM, LVM terdiri dari Volume Group (VG), VG ini terdiri dari Physical Volume (PV), di dalam PV ini bisa terdiri Logical Volume (LV). Nama VG bisa kita ubah sesuai yang kita inginkan. Terlihat bahwa PV yang kita gunakan adalah md1. Kemudian kita dapat mulai membuat LVnya, Klik tombol Add.
Image
Kita buat mount point untuk root (/), Filesystemnya pilih saja ext3, Logical Volume Namenya untuk memudahkan kita beri naman LogVolRoot. Besarnya kira-kira 5000 MB.

Image

Image
Buat juga untuk /home

Image

Image
Buat juga untuk swap

Image

Image
Setelah selesai LVM, skema partisi akan terlihat, ada Hard Drives, Raid Devices, dan LVM.

Setelah selesai installasi kita lihat kondisi partisi dan mount pointnya seperti ini:

[root@server-mail ~]# df -h

Filesystem Size Used Avail Use% Mounted on

/dev/mapper/VolGroup00-LogVolRoot

4.9G 2.2G 2.5G 47% /

/dev/md0 289M 17M 257M 7% /boot

none 506M 0 506M 0% /dev/shm

/dev/mapper/VolGroup00-LogVolHome

68G 85M 64G 1% /home

TESTING REDUNDANCY RAID-1


Nah, kita telah sampai ke tahap yang menarik, yaitu kita mentesting apakah RAID-1 yang telah kita setel tadi benar-benar dapat bekerja dengan baik.


Sebelumnya kita lihat dahulu kondisi RAIDnya.


Kita lihat di command dmesg:


[root@server-mail ~]# dmesg

ata1: SATA max UDMA/133 cmd 0xEFF0 ctl 0xEFE6 bmdma 0xEF60 irq 185

ata2: SATA max UDMA/133 cmd 0xEFA8 ctl 0xEFE2 bmdma 0xEF68 irq 185

ata1: dev 0 cfg 49:2f00 82:7c6b 83:7b09 84:4003 85:7c69 86:3a01 87:4003 88:207f

ata1: dev 0 ATA, max UDMA/133, 160086528 sectors:

ata1: dev 0 configured for UDMA/133

scsi0 : ata_piix

ata2: dev 0 cfg 49:2f00 82:7469 83:7f01 84:4023 85:7469 86:3c01 87:4023 88:207f

ata2: dev 0 ATA, max UDMA/133, 156301488 sectors: lba48

ata2: dev 0 configured for UDMA/133

scsi1 : ata_piix

Vendor: ATA Model: Maxtor 6Y080M0 Rev: YAR5

Type: Direct-Access ANSI SCSI revision: 05

SCSI device sda: 160086528 512-byte hdwr sectors (81964 MB)

SCSI device sda: drive cache: write back

sda: sda1 sda2

Attached scsi disk sda at scsi0, channel 0, id 0, lun 0

Vendor: ATA Model: WDC WD800JD-22LS Rev: 06.0

Type: Direct-Access ANSI SCSI revision: 05

SCSI device sdb: 156301488 512-byte hdwr sectors (80026 MB)

SCSI device sdb: drive cache: write back

sdb: sdb1 sdb2

Attached scsi disk sdb at scsi1, channel 0, id 0, lun 0

device-mapper: 4.4.0-ioctl (2005-01-12) initialised: dm-devel@redhat.comThis e-mail address is being protected from spam bots, you need JavaScript enabled to view it

md: raid1 personality registered as nr 3

md: Autodetecting RAID arrays.

md: autorun ...

md: considering sdb2 ...

md: adding sdb2 ...

md: sdb1 has different UUID to sdb2

md: adding sda2 ...

md: sda1 has different UUID to sdb2

md: created md1

md: bind

md: bind

md: running:

raid1: raid set md1 active with 2 out of 2 mirrors

md: considering sdb1 ...

md: adding sdb1 ...

md: adding sda1 ...

md: created md0

md: bind

md: bind

md: running:

raid1: raid set md0 active with 2 out of 2 mirrors

md: ... autorun DONE.

md: Autodetecting RAID arrays.

md: autorun ...

md: ... autorun DONE.


Tapi RAID-1 nya ini belum selesai, dia secara otomatis sedang membangun pasangannya. Dapat kita lihat dari command ini:


[root@server-mail ~]# cat /proc/mdstat

Personalities : [raid1]

md1 : active raid1 sdb2[1] sda2[0]

77842880 blocks [2/2] [UU]

[==================>..] resync = 93.0% (72464960/77842880) finish=2.5min speed=34857K/sec

md0 : active raid1 sdb1[1] sda1[0]

305088 blocks [2/2] [UU]

resync=DELAYED

unused devices:



Dan di top terlihat aktivitas process rsyncnya:


[root@server-mail ~]# top

top - 20:58:46 up 30 min, 2 users, load average: 1.10, 1.08, 0.86

Tasks: 95 total, 1 running, 94 sleeping, 0 stopped, 0 zombie

Cpu(s): 0.2% us, 0.7% sy, 0.0% ni, 99.0% id, 0.0% wa, 0.2% hi, 0.0% si

Mem: 1034376k total, 254720k used, 779656k free, 9792k buffers

Swap: 950264k total, 0k used, 950264k free, 121768k cached


PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

216 root 15 0 0 0 0 S 0.7 0.0 0:33.04 md1_raid1

217 root 15 0 0 0 0 D 0.3 0.0 0:22.58 md1_resync

4015 root 16 0 3492 1004 776 R 0.3 0.1 0:00.01 top

1 root 16 0 1960 592 508 S 0.0 0.1 0:00.71 init

2 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0

3 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0



Dapat pula kita lihat status detailnya Raid dengan command ini:


[root@server-mail ~]# mdadm --detail /dev/md1

/dev/md1:

Version : 00.90.01

Creation Time : Fri Mar 3 03:08:01 2006

Raid Level : raid1

Array Size : 77842880 (74.24 GiB 79.71 GB)

Device Size : 77842880 (74.24 GiB 79.71 GB)

Raid Devices : 2

Total Devices : 2

Preferred Minor : 1

Persistence : Superblock is persistent


Update Time : Thu Mar 2 20:59:49 2006

State : clean

Active Devices : 2

Working Devices : 2

Failed Devices : 0

Spare Devices : 0



Number Major Minor RaidDevice State

0 8 2 0 active sync /dev/sda2

1 8 18 1 active sync /dev/sdb2

UUID : 1aba11f9:82f69106:f2c8fc07:22f0e395

Events : 0.36



Setelah selesai proses building mirrornya kita dapat lihat status raid tersebut:


[root@server-mail ~]# cat /proc/mdstat

Personalities : [raid1]

md1 : active raid1 sdb2[1] sda2[0]

77842880 blocks [2/2] [UU]


md0 : active raid1 sdb1[1] sda1[0]

305088 blocks [2/2] [UU]


unused devices:


Dapat pula kita lihat status partisinya dengan command fdisk:


[root@server-mail ~]# fdisk -l


Disk /dev/sda: 81.9 GB, 81964302336 bytes

255 heads, 63 sectors/track, 9964 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes


Device Boot Start End Blocks Id System

/dev/sda1 * 1 38 305203+ fd Linux raid autodetect

/dev/sda2 39 9729 77842957+ fd Linux raid autodetect


Disk /dev/sdb: 80.0 GB, 80026361856 bytes

255 heads, 63 sectors/track, 9729 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes


Device Boot Start End Blocks Id System

/dev/sdb1 * 1 38 305203+ fd Linux raid autodetect

/dev/sdb2 39 9729 77842957+ fd Linux raid autodetect


Disk /dev/md0: 312 MB, 312410112 bytes

2 heads, 4 sectors/track, 76272 cylinders

Units = cylinders of 8 * 512 = 4096 bytes


Device Boot Start End Blocks Id System


Disk /dev/md1: 79.7 GB, 79711109120 bytes

2 heads, 4 sectors/track, 19460720 cylinders

Units = cylinders of 8 * 512 = 4096 bytes


Disk /dev/md1 doesn't contain a valid partition table


INSTALL GRAB


masuk ke Grub command line:

# grub

Install grub pada MBR:

grub> device (hd0) /dev/sdb (or /dev/hdb for IDE drives)
grub> root (hd0,0)
grub> setup (hd0)
grub>quit


TESTING: CABUT SALAH SATU HARDDISK


Ok, setelah yakin bahwa RAID telah berjalan. Kita matikan komputernya, lalu kita cabut salah satu harddisknya.


Hidupkan komputer.... dan.... Linux tetap berjalan! Hehe.. jangan senang dulu, langkah selanjutnya nanti adalah membangun kembali mirror yang 'rusak' itu.


Ketika kita hidupkan dengan hanya 1 buah harddisk, di dalam dmesg kita kan dapat melihat bahwa Linux telah mendeteksi bahwa salah satu harddisknya mengalami kegagalan, ada message: raid1: raid set md1 active with 1 out of 2 mirrors.


[root@server-mail ~]# dmesg

ata1: SATA max UDMA/133 cmd 0xEFF0 ctl 0xEFE6 bmdma 0xEF60 irq 185

ata2: SATA max UDMA/133 cmd 0xEFA8 ctl 0xEFE2 bmdma 0xEF68 irq 185

ata1: SATA port has no device.

scsi0 : ata_piix

ata2: dev 0 cfg 49:2f00 82:7469 83:7f01 84:4023 85:7469 86:3c01 87:4023 88:207f

ata2: dev 0 ATA, max UDMA/133, 156301488 sectors: lba48

ata2: dev 0 configured for UDMA/133

scsi1 : ata_piix

Vendor: ATA Model: WDC WD800JD-22LS Rev: 06.0

Type: Direct-Access ANSI SCSI revision: 05

SCSI device sda: 156301488 512-byte hdwr sectors (80026 MB)

SCSI device sda: drive cache: write back

sda: sda1 sda2

Attached scsi disk sda at scsi1, channel 0, id 0, lun 0

device-mapper: 4.4.0-ioctl (2005-01-12) initialised: dm-devel@redhat.comThis e-mail address is being protected from spam bots, you need JavaScript enabled to view it

md: raid1 personality registered as nr 3

md: Autodetecting RAID arrays.

md: autorun ...

md: considering sda2 ...

md: adding sda2 ...

md: sda1 has different UUID to sda2

md: created md1

md: bind

md: running:

raid1: raid set md1 active with 1 out of 2 mirrors

md: considering sda1 ...

md: adding sda1 ...

md: created md0

md: bind

md: running:

raid1: raid set md0 active with 1 out of 2 mirrors

md: ... autorun DONE.

md: Autodetecting RAID arrays.

md: autorun ...

md: ... autorun DONE.


Selanjutnya, melalui command mdstat juga dapat kita lihat statusnya:


[root@server-mail ~]# cat /proc/mdstat

Personalities : [raid1]

md1 : active raid1 sda2[1]

77842880 blocks [2/1] [_U]


md0 : active raid1 sda1[1]

305088 blocks [2/1] [_U]


unused devices:



Melalui fdisk juga dapat dilihat harddisk mana yang sedang hidup.


[root@server-mail ~]# fdisk -l

Disk /dev/sda: 80.0 GB, 80026361856 bytes

255 heads, 63 sectors/track, 9729 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes


Device Boot Start End Blocks Id System

/dev/sda1 * 1 38 305203+ fd Linux raid autodetect

/dev/sda2 39 9729 77842957+ fd Linux raid autodetect


Disk /dev/md0: 312 MB, 312410112 bytes

2 heads, 4 sectors/track, 76272 cylinders

Units = cylinders of 8 * 512 = 4096 bytes


Device Boot Start End Blocks Id System


Disk /dev/md1: 79.7 GB, 79711109120 bytes

2 heads, 4 sectors/track, 19460720 cylinders

Units = cylinders of 8 * 512 = 4096 bytes


Disk /dev/md1 doesn't contain a valid partition table


Terlihat bahwa cuma sda yang hidup.


LVM terlihat tidak terpengaruh:


[root@server-mail ~]# vgdisplay

--- Volume group ---

VG Name VolGroup00

System ID

Format lvm2

Metadata Areas 1

Metadata Sequence No 4

VG Access read/write

VG Status resizable

MAX LV 0

Cur LV 3

Open LV 3

Max PV 0

Cur PV 1

Act PV 1

VG Size 74.22 GB

PE Size 32.00 MB

Total PE 2375

Alloc PE / Size 2374 / 74.19 GB

Free PE / Size 1 / 32.00 MB

VG UUID utCkc5-dkn3-srHi-nGLS-s76d-BcE3-BkFYEx



Oya, Linux akan memberitahu kita bahwa kondisi RAID kita degraded / turun melalui email:


From: mdadm monitoring < root@server-mail.mydomain.comThis e-mail address is being protected from spam bots, you need JavaScript enabled to view it >

To: fajar@mydomain.comThis e-mail address is being protected from spam bots, you need JavaScript enabled to view it

Date: Today 11:12:29 am


This is an automatically generated mail message from mdadm

running on server-mail.mydomain.com

A DegradedArray event had been detected on md device /dev/md0.

Faithfully yours, etc.


Hehe.. menarik bukan? Kita akan menerima 2 buah email sebab kita memiliki 2 buah raid device yaitu md0 dan md1.


Baiklah, sekarang kita matikan kembali komputer. Dan pasang kembali harddisk yang tadi kita copot. Kita hidupkan komputer dan kita pantau apa yang terjadi di dalam dmesg.


[root@server-mail ~]# dmesg

ata1: SATA max UDMA/133 cmd 0xEFF0 ctl 0xEFE6 bmdma 0xEF60 irq 185

ata2: SATA max UDMA/133 cmd 0xEFA8 ctl 0xEFE2 bmdma 0xEF68 irq 185

ata1: dev 0 cfg 49:2f00 82:7c6b 83:7b09 84:4003 85:7c69 86:3a01 87:4003 88:207f

ata1: dev 0 ATA, max UDMA/133, 160086528 sectors:

ata1: dev 0 configured for UDMA/133

scsi0 : ata_piix

ata2: dev 0 cfg 49:2f00 82:7469 83:7f01 84:4023 85:7469 86:3c01 87:4023 88:207f

ata2: dev 0 ATA, max UDMA/133, 156301488 sectors: lba48

ata2: dev 0 configured for UDMA/133

scsi1 : ata_piix

Vendor: ATA Model: Maxtor 6Y080M0 Rev: YAR5

Type: Direct-Access ANSI SCSI revision: 05

SCSI device sda: 160086528 512-byte hdwr sectors (81964 MB)

SCSI device sda: drive cache: write back

sda: sda1 sda2

Attached scsi disk sda at scsi0, channel 0, id 0, lun 0

Vendor: ATA Model: WDC WD800JD-22LS Rev: 06.0

Type: Direct-Access ANSI SCSI revision: 05

SCSI device sdb: 156301488 512-byte hdwr sectors (80026 MB)

SCSI device sdb: drive cache: write back

sdb: sdb1 sdb2

Attached scsi disk sdb at scsi1, channel 0, id 0, lun 0

device-mapper: 4.4.0-ioctl (2005-01-12) initialised: dm-devel@redhat.comThis e-mail address is being protected from spam bots, you need JavaScript enabled to view it

md: raid1 personality registered as nr 3

md: Autodetecting RAID arrays.

md: autorun ...

md: considering sdb2 ...

md: adding sdb2 ...

md: sdb1 has different UUID to sdb2

md: adding sda2 ...

md: sda1 has different UUID to sdb2

md: created md1

md: bind

md: bind

md: running:

md: kicking non-fresh sda2 from array!

md: unbind

md: export_rdev(sda2)

raid1: raid set md1 active with 1 out of 2 mirrors

md: considering sdb1 ...

md: adding sdb1 ...

md: adding sda1 ...

md: created md0

md: bind

md: bind

md: running:

md: kicking non-fresh sda1 from array!

md: unbind

md: export_rdev(sda1)

raid1: raid set md0 active with 1 out of 2 mirrors

md: ... autorun DONE.

md: Autodetecting RAID arrays.

md: autorun ...

md: considering sda1 ...

md: adding sda1 ...

md: sda2 has different UUID to sda1

md: md0 already running, cannot run sda1

md: export_rdev(sda1)

md: considering sda2 ...

md: adding sda2 ...

md: md1 already running, cannot run sda2

md: export_rdev(sda2)

md: ... autorun DONE.


Terlihat ada yang aneh bahwa /dev/sda dianggap sebagai tidak fresh, padahal yg dicopot adalah sdb. Ini karena kita langsung mencopot sdb dan memasangnya kembali, dimana di dalam sdb tersebut masih ada informasi mirrornya, jadi keliru mendeteksinya. Tapi tidak apa-apa, memang sebab nanti jika memang di situasi sebenarnya, kita akan memasang harddisk yang benar-benar kosong.


Di mdstat terlihat bahwa salah satu mirror mati, cuma sdb yang ada:


[root@server-mail ~]# cat /proc/mdstat

Personalities : [raid1]

md1 : active raid1 sdb2[1]

77842880 blocks [2/1] [_U]


md0 : active raid1 sdb1[1]

305088 blocks [2/1] [_U]


unused devices:




MEMBANGUN KEMBALI RAID

Untuk membangun RAID nya lagi, kita tambahkan drive sda itu satu per satu ke dalam raid device md0 dan md1:


[root@server-mail ~]# mdadm /dev/md0 --add /dev/sda1

mdadm: hot added /dev/sda1


[root@server-mail ~]# mdadm /dev/md1 --add /dev/sda2

mdadm: hot added /dev/sda2


Linux segera otomatis membangun kembali RAID-nya:


[root@server-mail ~]# cat /proc/mdstat

Personalities : [raid1]

md1 : active raid1 sda2[2] sdb2[1]

77842880 blocks [2/1] [_U]

[>....................] recovery = 1.0% (815104/77842880) finish=23.6min speed=54340K/sec

md0 : active raid1 sda1[0] sdb1[1]

305088 blocks [2/2] [UU]


unused devices:


Setelah selesai sinkronisasi:


[root@server-mail ~]# cat /proc/mdstat

Personalities : [raid1]

md1 : active raid1 sda2[0] sdb2[1]

77842880 blocks [2/2] [UU]


md0 : active raid1 sda1[0] sdb1[1]

305088 blocks [2/2] [UU]


unused devices:


Linux kita telah kembali ke kondisi semula. RAID-1 dengan 2 harddisk sebagai mirror :)



Resources:

  1. ttp://linux2.arinet.org

  2. http://www.kernelhardware.org