Jump to content
pyth0n3

[Unix/Solaris] Structura fizica/logica disk-uri (system level)

Recommended Posts


In acest topic/tutorial voi explica intrun mod tehnic dar in acelasi timp
simplu de inteles pentru nivelul unui user structura disk-urilor in Solaris
Voi simplifica totul in cateva optiuni:
- Cum vine vazut un disk fizic (hard disk) de catre sistem
- Cum vin create partitiile intrun disk la nivelul sistemului

-Cum vine vazut un disk fizic de catre sistem
Presupunem ca avem un hard disk care poate fi reprezentat in urmatorul fel:
-----------------
- -
- - -> Primul hard disk c1d0
- -
-----------------

-----------------
- -
- - -> Al doilea hard disk c1d1
- -
-----------------


In solaris fiecarui disk ii vine atribuit un nume, asadar poate fi recunoscut
de catre sistem in baza numelui pe care il poarta.

c -> logical controller
d -> disk number

Avem doua discuri colegate la acelasi controller care are valoarea 1 si vine
specificata de catre litera (c) , si numarul care ii vine atribuit fiecarui
disk de catre litera (d) incepand de la 0.
Deci 0 va fi primul disk colegat (de obicei este discul unde vine instalat
sistemul) iar 1 va fi al doilea disk colegat la acest sistem
Pentru a functiona discurile necesita sa fie formatate ,si au nevoie
de o partitie.


- Cum vin create partitiile intrun disk la nivelul sistemului

Note:
In sistemele X86 solaris va crea o singura partitie pe fiecare disk carei ii
va atribui urmatorul id 0xbf.
Structura disk-ului va fi modificata in felul urmator:

c1d0 disk
-----------------
-############## -
-# 1partition # - aceasta partitie va mosteni id-ul 0xbf(Solaris)
-############## -
-----------------
Note: Intrun disk se pot crea pana la un maxim de 4 partitii

In solaris fiecare partitie la randul ei vine impartita in "bucati" mai
mici care vin chemate slice.
In sistemele x86 o partitie poate contine un maxim de 10 slice
Structura unui hard disk cu o singura partitie impartita in 10 slice:
---------------------------------
-###############################-
-# # # # # # # # # # #-
-#0 #1 #2 #3 #4 #5 #6 #7 #8 #9 #-
-# # # # # # # # # # #-
-###############################-
---------------------------------
Note:Numerele pleaca de la 0

In fiecare slice se poate crea un filesystem
Un slice este echivalent cu o partitie pentru solaris , aceeasi structura
vine definita si in sistemele FreeBSD.

Partitiile (slice) 2,8,9 vin rezervate iar restul pot fi folosite pentru a
crea diverse sisteme de fisiere sau chiar o structura de Logical Volume.
############################################################################
2 - reprezinta un slice de bakup (in teorie numele are doar un tag de backup
dar reprezinta dimenisunea totala a disk-ului)
8 - reprezinta sectorul de boot al sistemului
9 - reprezinta un slice altenativ cu doar 2 cilindri
############################################################################
0 - de obice contine filesyste-ul root atunci cand vine instalat sistemul
dar poate fi creat oricare alt filesystem sau chiar introdus intrun volum
logic
1,3,4,5,6,7 pot fi folosite pentru orice
############################################################################
Note: Toata informatia in legatura cu structura acestor partitii chemat slice
vine stocata in (Volume Table Of Contents) chemata VTOC
VTOC ocupa primul si al doilea sector din partitia de boot
Exista un tool care extrage informatii in legatura cu geometria discului
si a partitiilor.Se numeste prtvtoc si are o pagina de manual care poate
fi accesata cu man prtvtoc.

Exemplu partitii slice de default dupa instalarea unui sistem:
Part Tag Flag Cylinders Size Blocks
0 root wm 3 - 762 5.82GB (760/0/0) 12209400
1 swap wu 763 - 838 596.16MB (76/0/0) 1220940
2 backup wm 0 - 1236 9.48GB (1237/0/0) 19872405
3 unassigned wm 0 0 (0/0/0) 0
4 unassigned wm 0 0 (0/0/0) 0
5 unassigned wm 0 0 (0/0/0) 0
6 unassigned wm 0 0 (0/0/0) 0
7 home wm 839 - 1236 3.05GB (398/0/0) 6393870
8 boot wu 0 - 0 7.84MB (1/0/0) 16065
9 alternates wu 1 - 2 15.69MB (2/0/0) 32130

- prima coloana detine numerele partitiilor chemate slice
- a doua coloana poate defini numele partitiilor ,(acestea pot fi:
root,swap, usr, stand, var, home, sau unassigned )
- a treia coloana wm -> write, mountable
wu -> write, unmountable
- in a patra coloana vin specificate valorile cilindrilor pentru fiecare
partitie
- in ultimele coloane vine specificata dimensiunea in KB,MB,GB si block size

Recapituland am spus ca primul hard disk vine identificat de catre sistem
ca fiind c1d0
c -> logical controller
d -> disk number
Ei bine fiecare slice vine identificat de catre litera (s) care detine
valoarea partitiei chemata slice .Deci avand in vedere faptul ca primul
slice si anume 0 contine filesyste-ul root vom avea urmatorul path :
/dev/dsk/c1d0s0
Iar spre exemplu home vine inpartitia numarul 7 deci vom avea ca path
/dev/dsk/c1d0s7
##############################
Pentru filesystemul root avem:
c1 -> logical controller
d0 -> primul disk
s0 -> primul slice
##############################

##############################
Pentru filesystem-ul home avem:
c1 -> logical controller
d0 -> primul disk
s7 -> al saptelea slice
##############################

Sa luam un alt exemplu:
Presupunem faptul ca vom exporta opt pe prima partitie pe al doilea disk

##############################
Pentru filesystem-ul opt avem:
c1 -> logical controller
d1 -> al doilea disk
s0 -> primul slice
##############################
Un df /opt ne va demonstra acest lucru
/opt (/dev/dsk/c1d1s0 ): 6076556 blocks 504179 files

In aceste exemple am folost disk-uri IDE in schimb intrun SCSI device
vom mai avea o litera si anume (t)
Un simplu exemplu pentru structura SCSI:
################################
c0t0d0s0
c0 -> primul logical controller
t0 -> primul logical unit number
d0 -> primul disk
s0 -> primul slice
################################

Pentru a modifica partitiile chemate slice se poate folosi un tool chemat
format, exista o pagina de manual si pentru acest tool man format care
spune " format - disk partitioning and maintenance utility"

Note: Spre exemplu cand vine introdus un nou disk de default sistemul nu
il va recunoaste , aici poate veni in ajutor un alt tool cmd-line
si anume " devfsadmd - administration command for /dev"
O simpla sintaxa pentru a scana sistemul in cautarea disk-urilor in mode
verbose poate fi urmatoarea:
devfsadm -vC
O data ce disk-urile vin gasite , pot fi administrate folosind format
Exemplu extras din format:
######################################################
AVAILABLE DISK SELECTIONS:
0. c1d0 <DEFAULT cyl 1237 alt 2 hd 255 sec 63>
/pci@0,0/pci-ide@9/ide@1/cmdk@0,0
1. c1d1 <DEFAULT cyl 3048 alt 2 hd 128 sec 32>
/pci@0,0/pci-ide@9/ide@1/cmdk@1,0
######################################################
Aici avem 2 discuri IDE , un master si un slave , master fiind disk-ul de
boot.Format are incluse diverse opriuni printe care (partition) cu care
se pot aloca partitiile chemate slice si fdisk pentru a crea partitiile
pentru disk inainte de a crea partitiile slice.

Intrun ambient mic pot fi 2 discuri , exemplele precedente au fost extrase
din sistemul meu solaris , dar intrun corporation pot fi sute de discuri
structurate intrun StorageBox
Un exemplu:
/dev/dsk/c1t0d0p0
/dev/dsk/c1t0d0p1
/dev/dsk/c1t0d0p2
/dev/dsk/c1t0d0p3
/dev/dsk/c1t0d0p4
/dev/dsk/c1t0d0s0
/dev/dsk/c1t0d0s1
.................
.................

Note:
Fiecare dispozitiv in /dev/dsk este defapt un link simbolic catre /devices
###################################################################
ls -ltr /dev/dsk/c1d0s0
/dev/dsk/c1d0s0 -> ../../devices/pci@0,0/pci-ide@9/ide@1/cmdk@0,0:a
###################################################################

Fiecare dispozitiv in /dev/dsk/ are o instanta in /dev/rdsk
Cele sub /dev/dsk/ sunt dispozitive de random-access aici se pot
crea filesystem-urile
Cele sub /dev/rdsk sunt dispozitive raw utilizate pentru functii de access
low-level.

O data ce vin alocate spatiile in partitiile chemate slice folosind format
se poate crea un filesystem pentru fiecare partitie folosind comandul newfs
"newfs - construct a UFS file system"
Sintaxa este foarte simpla
Presupunem ca am creat urmatoarele slice 3 si 4

/dev/rdsk/c1d1s3 - 512 mb
/dev/rdsk/c1d1s4 - 512 mb

Vom crea un file system pe fiecare si vom face mount in testslice3 si
testslice4

newfs /dev/rdsk/c1d1s3
newfs /dev/rdsk/c1d1s4

Note:Atentie newfs va distruge toate datele, iar daca vine folosit
intrun path gresit poate distruge sistemul.

Pentru a face mount

mount /dev/rdsk/c1d1s3 testslice3 && mount /dev/rdsk/c1d1s3 testslice4

Pentru a face in asa fel incat sa faca mount automat la reboot va trebui
modificat fisierul /etc/vfstab.

Download paper

wget http://sprunge.us/TiQS -O solaris_disks.txt 

  • Upvote 1
Link to comment
Share on other sites

M-am jucat putin cu solaris cu ani in urma, chiar voiam sa gasesc un sistem de operare mai sigur si rapid pentru hosting, asa ca tocmai il instalez in vmware esxi 5, sa vedem se stie.

Frumos tutorial, stiam de mult ca este unul din cele mai tari os-uri prin arhitectura la securitate dar nu l-am testat calumea pana acum.

Link to comment
Share on other sites

Sa schimbat mult in ultimele versiuni de solaris, din 9 a fost introdus (Service Management Facility) un sistem pentru gestiunea serviciilor iar din solaris 10 este de default.SMF introduce un set de tool-uri foarte folositoare, totul vine structuratt intrun database intern si orice serviciu poate fi pornit, oprit restartat etc.

Set-ul de tool-uri utile cuprinde:

svcs - report service status

svcadm - manipulate service instances

svccfg - import, export, and modify service configurations

inetadm - observe or configure inetd-controlled services

Un alt feature important in sistemele solaris este SMC (Service Management Console)

Note: SMC necesita sa fie Up and Running serverul WBEM dealtfel nu va merge.Important insa este faptul ca aceasta consola poate fi folosita in remote fara a expune serviciul catre extern.WBEM poate fi lasat sa ruleze in localhost pe portul 898 restrictionat de catre firewall catre extern iar consola poate fi exportata pe orice alt sistem folosind un tunnel ssh asadar singurul serviciu care va fi lasat deschis e sshd.

N.B. Va trebui rulat ssh cu optiunea X pentru a putea exporta X pe serverul local

Sintaxa e simpla ssh -X target_solaris_server dupa care rulati smc in terminal iar consola va fi exportata in local pe computerul vostru.

In solaris 11 spre exemplu a fost schimbat filesystem-ul UFS de default cu ZFS , (ZFS) fiind prezent si in solaris10 dar e optional in momentul instalarii.SOlaris 11 mai suporta si criptarea unui dataseth in ZFS

Tot in solaris 11 a fost introdus un sistem pentru gestiune pachete IPS (Image Packaging System) si au renuntat la desktop-ul Xsun si CDE in schimb a fost introdusa o versiune decenta de GNOME.Comenzile BSD din /usr/ucb nu mai vin folosite in solaris 11 (de fapt acum sunt doar optional)Tot in solaris 11 sunt prezente majoritatea comenzilor GNU tools.Solaris 10 si 11 necesita licenta pentru a folosi software-ul si patch-urile in schimb este gratuit OpenSolaris .Sa spun sincer in OpenSolaris nu e ca si cum ai fi in Solaris. In rest cred ca merita platita licenta pentru a benefecia de un serviciu full optional.

Edited by pyth0n3
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...