Su karštu keitimu galite pakeisti diskus (HDD/SSD), kol sistema veikia, siekiant sumažinti serverio veikimo sutrikimus, jeigu diskas sugenda. Prašome perskaityti šį straipsnį, kad galėtumėte pasiruošti ir atlikti karštą keitimą.
Suderinamumas
Dauguma mūsų naujų serverių modelių palaiko karštą keitimą.
Galite patikrinti, ar jūsų serveris palaiko karštą keitimą „Robot“ sistemoje. Eikite į serverį ir spustelėkite skirtuke „Parama“. Tada naujame lange spustelėkite apačioje „Techninė informacija“. „Kokio techninio problema susiduriate?“ poskyryje spustelėkite „Avarinis diskas“. Dabar slinkite žemyn, kol pamatysite parinktį „Keisti, kai sistema veikia“. Jei matote šią parinktį, jūsų serveris palaiko karštą keitimą.
Svarbūs pastebėjimai
Bendrai, pirmiausia turėtumėte pašalinti diską, kurį norite pakeisti, iš RAID. Tai turėtumėte padaryti prieš pradedant likusią karšto keitimo procedūrą. Tai padės išvengti papildomo pakenkimo disko keitimo metu. Taip pat būkite labai atsargūs, kad įvestumėte teisingą serijos numerį sugedusiam diskui. Jei jau nematote sugedusio disko serijos numerio, aiškiai mums tai pasakykite ir pateikite serijos numerius visiems veikiantiems diskams.
Procedūra
Aparatinė RAID
Jei naudojate serverį su RAID valdikliu, galite keisti diskus naudodami karštą keitimą; tai taikoma visiems operacinės sistemos tipams. Šiuo metu turime Adaptec ir LSI RAID valdiklius.
Norėdami užklausti disko keitimo, parašykite pagalbinės paramos užklausą per savo paskyrą.
Žemiau pateikiami keli pavyzdžiai:
Svarbu: Tai tik pavyzdžiai. Jums reikia prisitaikyti prie žingsnių ir ypač komandų parametrų, kad atitiktų JŪSŲ konkretų sistemą!
LSI valdiklis
Pavyzdinė konfigūracija: „Debian“ diegimas ant RAID 1 masyvo su dviem SSD. Yra pasiekiami komandinės eilutės įrankiai MegaCli64
ir StorCLI
.
- StorCLI:
- Raskite „StorCLI“ (galite konvertuoti „RPM“ paketą į „deb“ paketą naudodami
alien
, o tada jį įdiekite). - Sukurkite aliasą, kad būtų lengviau naudoti:
alias storcli='/opt/MegaRAID/storcli/storcli64'
Šiame pavyzdyje įsivaizduokite, kad yra sugedęs SSD, esantis lizde 0.
- Galite rasti būseną ir serijos numerius (Inquiry Data) naudodami šią komandą, pavyzdžiui:
storcli /c0/eALL/sALL show all | egrep 'Device attributes|SN = | Intf | SATA'
- Jei sugedęs diskas dar neturi būsenos „offline“, tai padarykite „offline“ naudodami
storcli
:storcli /c0/e252/s0 set offline
- Dabar SSD pažymėtas kaip dingęs…
storcli /c0/e252/s0 set missing
- Dabar parašykite paramos užklausą per „Robot“ ir paprašykite pakeisti diską.
- Po to, kai mūsų komanda pakeis diską, patikrinkite naujo disko būseną:
storcli /c0/eall/sall show
- Jei atstatymas nepradeda automatiškai, paleiskite atstatymą rankiniu būdu.
storcli /c0/e252/s0 start rebuild
- Raskite „StorCLI“ (galite konvertuoti „RPM“ paketą į „deb“ paketą naudodami
- MegaCli64:
- Raskite MegaCli64. (Galite konvertuoti RPM paketą į deb paketą naudodami
alien
ir tada jį įdiegti). - Įrankis yra gana tolerantiškas dėl parametrų žymėjimo. Parametrus galite įvesti su arba be brūkšnelio, ir jie nėra jautrūs didžiosioms/mažosioms raidėms.
- Sukurkite pseudonimą, kad būtų lengviau naudotis:
alias megacli='/opt/MegaRAID/MegaCli/MegaCli64'.
Šiame pavyzdyje, įsivaizduokite, kad yra defektinis SSD diskas įkištas į lizdą 0.
- Galite rasti būseną ir serijinius numerius (Inquiry Data) naudodami šią komandą, pavyzdžiui:
megacli pdlist a0 | grep -Ei 'enclosure|slot|firmware state|inquiry'
- Jei defektinis diskas dar neturi būsenos (firmware state) ‘offline’,
MegaCli
nustatys jį kaip ‘offline’:megacli pdoffline physdrv[252:0] a0
- Dabar SSD diskas pažymėtas kaip pradingęs…
megacli pdmarkmissing physdrv[252:0] a0
- …ir pasiruošęs keitimui
megacli pdprprmv physdrv[252:0] a0
- Dabar parašykite pagalbos prašymą per Robotą ir paprašykite pakeisti diską.
- Po to, kai mūsų komanda pakeis diską, patikrinkite naujo disko būseną:
megacli pdlist a0 | grep -Ei 'enclosure|slot|firmware state|inquiry'
- Jei atstatymas nepasidaro automatiškai, paleiskite jį rankiniu būdu.
- Raskite MegaCli64. (Galite konvertuoti RPM paketą į deb paketą naudodami
Adaptec valdiklis
Pavyzdinė konfigūracija: „Debian“ diegimas ant RAID 1 masyvo su dviem diskais.
- Jums reikia komandinės eilutės įrankio
arcconf
. - Defektuotas diskas prijungtas prie lizdo 0.
- Būseną ir serijinius numerius galite rasti šia komanda, pavyzdžiui:
arcconf getconfig 1 pd|egrep "Device #|State\>|Reported Location|Reported Channel|Serial|S.M.A.R.T. warnings"
- Jei defektuotas diskas dar neturi būsenos „failed“, ši būsena nustatoma:
arcconf setstate 1 device 0 0 ddd
- Dabar parašykite pagalbos prašymą per Robotą ir paprašykite pakeisti diską.
- Po to, kai mūsų komanda pakeis diską, patikrinkite naujo disko būseną:
arcconf getconfig 1 pd | egrep "Device #|State\>|Reported Location|Reported Channel|Serial|S.M.A.R.T. warnings"
- Jei atstatymas nepasidaro automatiškai, paleiskite jį rankiniu būdu.
Programinė RAID
Pagrindiniuose nuostatuose karštas keitimas taip pat galimas SATA valdiklio diskams. Operacinė sistema pripažįsta jungties būsenos pasikeitimą atitinkamame valdytoje ir naują diską atpažįsta vos jis prijungtas. Veiksmai, kurių reikia imtis, skiriasi priklausomai nuo operacinės sistemos ir konfigūracijos.
Žemiau pateikiami keli pavyzdžiai:
Svarbu: Tai tik pavyzdžiai. Turite prisitaikyti žingsnius ir ypač komandų parametrus pagal savo konkretų sistemą!
Windows
Svarbu: Su „Windows“ neįmanoma karštai keisti pradinio „plex“ (start plex). Todėl sistema turi būti paleista iš sveikojo Plex prieš pradedant karštą keitimą. („Microsoft“ taip pat vadina lyginimą kaip plexing, todėl „plex“ yra dalis lygintojo tūrio).
Tarkime, kad serveris turi standartinę „Windows Server“ diegimą „UEFI“ režime su dviem diskais ir lyginimu. Defektuotas diskas yra diskas 1 (antrasis Plex). Sistema buvo paleista iš pirminio plex.
- Išimkite HDD/SSD iš RAID.
Diskų valdyme (diskmgmt.msc) atidarykite kontekstinį meniu „Volume C:“ ir pasirinkite „Remove Mirroring“.
- Nuskaitykite serijinį numerį defektuoto arba sveikojo HDD/SSD naudodami diskid32.exe.
- Pateikite pagalbos prašymą ir paprašykite mūsų komandos pakeisti diską (karštai keičiamas).
- Po to, kai mūsų komanda pakeis diską, paleiskite diskpart.
- Paruoškite diską / sukurkite skaidinius pagal sveikąjį HDD/SSD.
- Jei keičiamo HDD/SSD nepavyksta aptikti:
DISKPART> rescan
- Rodyti diską:
DISKPART> list disk
- Jei defektuotas diskas rodomas kaip M1 (missing):
DISKPART> select disk M1 DISKPART> delete disk
- Konvertuokite išimamąjį diską į dinaminę aplinką su GPT.
- Sukurkite ir suformatuokite EFI skaidinį ir priskirkite jam raidė E.
- Pridėkite HDD/SSD prie veidrodinio disko C ir palaukite, kol sinchronizacija bus baigta.
DISKPART> select disk 1 DISKPART> convert gpt DISKPART> create partition efi size=200 DISKPART> format fs=fat32 quick DISKPART> assign letter=e DISKPART> convert dynamic DISKPART> select volume c DISKPART> add disk 1 wait
- Priskirkite raidę x sveikojo HDD/SSD EFI skaidiniui.
DISKPART> select disk 0 DISKPART> select part 1 DISKPART> assign letter=x DISKPART> exit
- EFI skaidinys ir paleidimo tvarkytuvas:Pavyzdyje EFI skaidiniai buvo priskirti šios raidės: x: egzistuojantis EFI skaidinys e: naujai sukurtas EFI skaidinys pakeičiamajame diske
- Pirmiausia turėtumėte išsaugoti sistemos BCD atmintį (čia faile
BCD_backup
esant dabartiniam katalogui), kad galėtumėte atšaukti bet kokius vėlesnius pakeitimus naudodamibcdedit /import
:bcdedit /export BCD_backup
- Rekursyviai nukopijuokite EFI skaidinį, bet praleiskite BCD atmintį ir „System Volume Information“ aplanką:
robocopy x:\ e:\ * /e /copyall /dcopy:t /xf BCD.* /xd "System Volume Information"
- Dabar eksportuokite sistemos BCD atmintį į pakeičiamąjį diską naudodami
bcdedit
:bcdedit /export e:\EFI\Microsoft\Boot\BCD
Dabar galite paleisti abu paleidimo tvarkytuvus iš bet kurio iš dviejų paleidimo plex’ų.
Tam tikromis aplinkybėmis gali prireikti atlikti papildomus BCD atminties pakeitimus (pvz., jei vis dar yra naikintas paleidimo įrašas). Daugiau informacijos galite rasti: http://download.microsoft.com/download/6/E/E/6EE26977-FAA0-41CC-8BDA-7A0C5E6EB9CC/Configuring%20Disk%20Mirroring%20for%20Windows%20Server%202012.docx.
FreeBSD
- gmirror + UFS:Pavyzdinė konfigūracija: FreeBSD diegimas su
UFS
irgmirror
naudojant šiuos masyvus:/dev/mirror/boot (ada0p1 + ada1p1) /dev/mirror/swap (ada0p2 + ada1p2) /dev/mirror/root (ada0p3 + ada1p3)
Defektuotas HDD/SSD yra ada1.
- Išimkite defektuotąjį HDD/SSD iš RAID.
- Patikrinkite būseną:
gmirror status
- Išjunkite defektuotojo HDD/SSD skaidinius, jei reikia:
gmirror deactivate boot ada1p1 gmirror deactivate swap ada1p2 gmirror deactivate root ada1p3
- „Pamirškite“ defektuotojo HDD/SSD skaidinius:
gmirror forget boot gmirror forget swap gmirror forget root
- Raskite defektuotojo HDD/SSD serijinį numerį:
- Pavyzdžiui, naudodami
smartctl
iš smartmontools paketo:smartctl -a /dev/ada1 |grep -i serial
- Arba naudodami
camcontrol
:camcontrol identify /dev/ada1 |grep -i serial
- Dabar parašykite pagalbos prašymą per „Robot“ ir paprašykite keisti diską.
- Po keitimo nukopijuokite skaidinių lentelę iš ada0 į ada1:
gpart backup ada0 | gpart restore ada1
NOTE: Šiuo metu atrodo, kad FreeBSD 11 yra klaida, neleidžianti FreeBSD atkurti skaidinių lentelės, kas gali kelti grėsmę paleidimui iš pakeisto disko. Jei susiduriate su šia problema, žr. FreeBSD Forum postą.
- Pridėkite keičiamojo HDD/SSD skaidinius prie gmirror:
gmirror insert boot ada1p1 gmirror insert swap ada1p2 gmirror insert root ada1p3
- Įdiekite paleidimo kodą į keičiamąjį HDD/SSD:
gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 ada1
- ZFSPavyzdinė konfigūracija: FreeBSD diegimas naudojant ZFS su šiais masyvais:
/dev/mirror/boot (ada0p1 + ada1p1) /dev/mirror/swap (ada0p2 + ada1p2)
ZFS pool zroot su atspindinimu per gpt/root0 (GPT žymė ada0p3) ir gpt/root1 (GPT žymė ada1p3)
Defektuotas HDD/SSD yra ada0.
(Abu
gmirror
atvaizdai boot ir swap tvarkomi pagal aukščiau pateiktą procedūrą).- Jeigu norite naudoti ZFS atvaizdinimui, taip pat turite patikrinti atvaizdo būseną prieš jį keičiant ir, jei reikia, nustatyti atitinkamą skaidinį (pavyzdžiui, gpt/root0) kaip neprisijungusį:
zpool status pool: zroot state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM zroot ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 gpt/root0 ONLINE 0 0 0 gpt/root1 ONLINE 0 0 0 zpool offline zroot gpt/root0 zpool status pool: zroot state: DEGRADED status: One or more devices has been taken offline by the administrator. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Online the device using 'zpool online' or replace the device with 'zpool replace'. scan: none requested config: NAME STATE READ WRITE CKSUM zroot DEGRADED 0 0 0 mirror-0 DEGRADED 0 0 0 8894732708877724737 OFFLINE 0 0 0 was /dev/gpt/root0 gpt/root1 ONLINE 0 0 0 gmirror deactivate boot ada0p1 gmirror deactivate swap ada0p2 gmirror forget boot gmirror forget swap
- Jei naudojate GPT žymes kaip pavyzdyje, galite rasti priskyrimą disko naudodami
gpart
:gpart list | grep -Egg 'geom|label' Geom name: ada0 label: boot0 label: swap0 label: root0 Geom name: ada1 label: boot1 label: swap1 label: root1
- Raskite defektuotojo HDD/SSD serijinį numerį:
- Pavyzdžiui, naudodami
smartctl
iš smartmontools paketo:smartctl -a /dev/ada0 |grep -i serial
- Arba naudodami
camcontrol
:camcontrol identify /dev/ada0 |grep -i serial
- Parašykite pagalbos bilietą per Robot’ą ir paprašykite mūsų komandos pakeisti diską. Įsitikinkite, kad įtraukiate teisingą disko serijinį numerį. Po keitimo perduokite skaidinių lentelę naudodami
gpart
, sutvarkykitegmirror
atvaizdą ir įdiekite paleidimo kodą:gpart backup ada1 | gpart restore ada0 gmirror insert boot ada0p1 gmirror insert swap ada0p2 gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada0
- Tada sureguliuokite ZFS skaidinio (šiuo atveju trečiojo, t. y. ada0p3) GPT žymę keičiamojo disko (gpt/root0):
gpart modify -i 3 -l root0 ada0
- Naujas įrenginys dabar gali pakeisti sugedusią dalį atvaizdo:
zpool replace zroot gpt/root0 zpool status -x all pools are healthy
For detailed information on configuring and managing the ZFS file system, see the Oracle documentation: Oracle ZFS Documentation (English)
- Jeigu norite naudoti ZFS atvaizdinimui, taip pat turite patikrinti atvaizdo būseną prieš jį keičiant ir, jei reikia, nustatyti atitinkamą skaidinį (pavyzdžiui, gpt/root0) kaip neprisijungusį: