Re: [Solaris_fr] Essai Solaris 9.7 sur DELL Power Edge 2650

2005-01-14 Par sujet Christian Pelissier


>
>Et Mike Riley est en train de faire la correction, avec des patches prevus 
>jusqu'a Solaris 8. Il peut etre interessant de le contacter pour savoir s'il 
>existe une pre-version du driver corrige:
>
>  --
>This is bug 5042195.  What version of Solaris are you using?  If you are
>using Solaris 9 I have an IDR that should solve the problem.  A patch is
>not yet available.

J'ai eu aussi un retour du hcl-x86 qui m'indique  que cela fonctionne
en RAID avec le controleur RAID PERC (le seul essai que je n'avais pas
fait) et en Solaris 10 B_72. J'ai lancé un début d'install jusqu'au 
partitionnement et c'est exact.



--
Christian Pélissier
Office National d'Études et de Recherches Aérospatiales BP 72 92322 Chatillon
Tel: 33 1 46 73 44 19, Fax: 33 1 46 73 41 50

___
Solaris_fr liste de diffusion en français pour Solaris, sur toutes architectures
Solaris_fr@x86.sun.com
http://x86.sun.com/mailman/listinfo/solaris_fr



Re: [Solaris_fr] Essai Solaris 9.7 sur DELL Power Edge 2650

2005-01-12 Par sujet Christian Pelissier
Je m'auto répond car la liste ayant bloqué pendant 2 ou 3 jours j'ai pu avancer
et cela peut aussi interesser d'autres personnes.

Voila donc un peu de background pour résoudre en partie les bugs de fdisk
ou format avec certains disques de grande capacité.

Les disques  sont accédés via un schéma appelé LBA (logical Block Adressing).

Dans ce schéma on définit l'adresse des blocs via :

cyl   (nombre de cylindres)
hd(nombre de têtes ou de surfaces)
sect  ( nombre de secteur par piste)


cyl*hd*sect*512 représente la capacité totale du disque. Si au départ il
y avait corrélation entre la réalité physique du disque cela n'est plus
vrai aujourd'hui.

Sous Solaris X86 la structure d'adressage est légèrement différente de
celle de Solaris Sparc et cyl qui est sur 32 bits sur Sparc est encore
sur 16 bits sur X86 (probablement à cause du BIOS qui traîne des vieilleries).

Dans notre cas le disque 146 Gb était vu par format comme

23074 cyl alt 2 hd 4 sec 809

En effaçant la partition fdisk (une seule pour tout le disque) et en la
recréant on avait :

88610 cyl alt 2 hd 4 sec 809

Une fois la géométrie écrite on lisait à nouveau

23074 cyl alt 2 hd 4 sec 809


(23074+2) * 4 * 809 = 36 Go au lieu des attendus

(88610+2) * 4 * 809 = 146 Go


On remarque que 88612-23076 = 65536 ce qui signifie donc que lorsque cyl
dépasse 65535 il est vu modulo 65536.

Comment résoudre ce PB.

Diviser cyl par 2 et multiplier hd par 2 pour retomber sur le bon nombre
de blocs est le plus simple . Soit ici

cyl = 88612/2 = 44306
hd = 4 x 2 = 8
sect = 809 inchangé.

Ce qu'il faut aussi comprendre c'est qu'il n'est pas utile de se racrocher
à une caractéristique physique du disque d'une part et que ce mode d'adressage
fait toujours perdre quelques secteurs.

Méthode 2
-

Si on regarde les caractéristiques constructeur du disque en question
SEAGATE ST3146707LC Rev D701 on voit qu'il est donné pour :

146,8 Gb
286 789 488 blocs
90773 cylindres
head 4
1 RPM

qui n'est pas la géométrie vue par format. On peut néammoins partir de ces
valeurs en remarquant que 90773 est la encore > 65535 et qu'il faut donc
le diviser par 2. Les valeurs suivantes sont également valables

Ce qui donnerait :

cyl= 90773/2 = 45386,5 qu'on est obligé d'arrondir à l'inférieur

cyl 45386
head 8
sec = 286 789 488 / ( 45386 x 8 ) = 789

Ce qui donne à cause du 1/2 cylindre une capacité adressable de 286476432


On peut jouer un peu comme on veut avec ces 3 valeurs et si on ne veut perdre
aucun bloc il faut factoriser le nombre de blocs (il faut aussi le connaître)
ce qui donne éventuellement une troisème méthode :


# factor 286789488
286789488
 2
 2
 2
 2
 3
 47
 127123

A partir de la factorisation trouver 3 nombres < 65536. On ne peut le faire
que si le plus grand d'entre eux est aussi < 65536. Ici c'est donc impossible.


Suite à ces manip j'ai pu créer une VTOC déclarant une partition Solaris de
136 Gb. Hélas je n'ai pas pu repartitionner (car on a retombe sur la
limite) et de ce fait on ne peut utiliser que la partition c (2).
Le disque est néammoins visible (newfs sur la partition 2) comme un 136 Go
ce qui était le but recherché.


PS.

Les constructeurs annoncent la capacité disque en multiple de 1000 et non
de 1024 il est donc normal de voir un disque 146,8 Go apparaitre comme
136,73 (en Go multiple de 1024) car les OS travaillent ainsi :

 
# bc
scale=2 
286749488*512
146815737856
146815737856/1024^3
136.73





Extrait du fichier /usr/include/sys/dklabel.h. Je suppose que Solaris Intel
est de type VTOC_16 ou les cylindres sont sur un entier de 16 bits.


struct dk_label {
#if defined(_SUNOS_VTOC_16)
struct  dk_vtoc dkl_vtoc;   /* vtoc inclusions from AT&T SVr4 */
uint32_tdkl_pcyl;   /* # of physical cylinders */
uint32_tdkl_ncyl;   /* # of data cylinders */
uint16_tdkl_acyl;   /* # of alternate cylinders */
uint16_tdkl_bcyl;   /* cyl offset (for fixed head area) */
uint32_tdkl_nhead;  /* # of heads */
uint32_tdkl_nsect;  /* # of data sectors per track */
uint16_tdkl_intrlv; /* interleave factor */
uint16_tdkl_skew;   /* skew factor */
uint16_tdkl_apc;/* alternates per cyl (SCSI only)   */
uint16_tdkl_rpm;/* revolutions per minute */
uint16_tdkl_write_reinstruct;   /* # sectors to skip, writes */
uint16_tdkl_read_reinstruct;/* # sectors to skip, reads  */
uint16_tdkl_extra[4];   /* for compatible expansion */
chardkl_pad[LEN_DKL_PAD];   /* unused part of 512 bytes */
#elif defined(_SUNOS_VTOC_8)
chardkl_asciilabel[LEN_DKL_ASCII]; /* for compatibility */
struct dk_vtoc  dkl_vtoc;   /* vtoc inclusions from AT&T SVr4 */
uint16_tdkl_write_reinstruct;   /* # sectors to skip, writes */
   

Re: [Solaris_fr] Essai Solaris 9.7 sur DELL Power Edge 2650

2005-01-11 Par sujet Laurent Blume
On Fri, 7 Jan 2005, Christian Pelissier wrote:
L'installation se passe mal car les disques 140 Go sont vus comme des disques
de 36 Go.
J'ai vu des posts recemments a ce sujet, c'est peut-etre un bug connu si le 
nombre de cylindres declares par le disque depasse 65535.

Si j'ai bien suivi ce fil-la, je cite Casper Dik, de Sun.
--- In [EMAIL PROTECTED], [EMAIL PROTECTED] wrote:
> The issue is with some devices which report > 65536 cylinders;
> other equally large devices are fine because they report fewer
> cylinders and more heads and sectors/track.
Et Mike Riley est en train de faire la correction, avec des patches prevus 
jusqu'a Solaris 8. Il peut etre interessant de le contacter pour savoir s'il 
existe une pre-version du driver corrige:

 --
This is bug 5042195.  What version of Solaris are you using?  If you are
using Solaris 9 I have an IDR that should solve the problem.  A patch is
not yet available.
 --
Laurent
--
A hundred thousand lemmings can't be wrong!
___
Solaris_fr liste de diffusion en français pour Solaris, sur toutes architectures
Solaris_fr@x86.sun.com
http://x86.sun.com/mailman/listinfo/solaris_fr


[Solaris_fr] Essai Solaris 9.7 sur DELL Power Edge 2650

2005-01-11 Par sujet Christian Pelissier
Le Power Edge 2650 est un serveur DELL certifié par Sun pour Solaris 9
(une des 9 machines dans cette classe).

Nous venons de recevoir un tel équipement pour faire tourner une BD Oracle
en pensant le faire sous Solaris 9.7.

L'installation se passe mal car les disques 140 Go sont vus comme des disques
de 36 Go.

Pour l'install nous avons commuté au niveau du BIOS du  RAID
vers le SSCI normal controleur AIC-7899. Au moment du formattage
logique fdisk, cet utilitaire refuse de voir les disques avec leur
capacité réelle et il faut se contenter de 36 Gb (soit 1/4).

Une idée (patch, paramètre BIOS particulier) pour résoudre ou
contourner ce problème ?

Faut-il flasher le BIOS ou même le controleur pour que les disques soient
vus correctement ?


PS. Le prtconf -pv sur la machine certifiée fait apparaitre ceci :

..

0/0x11/0 1166,101 ServerWorks CIOB-X2
Class 0x6: Bridge/Host bridge

0/0x11/2 1166,101 ServerWorks CIOB-X2
Class 0x6: Bridge/Host bridge

1/0x8/0 9005,c0 (9005,f620) Adaptec AHA-3960D / AIC-7899A U160/m
Class 0x1: Mass storage controller/SCSI storage controller

1/0x8/1 9005,c0 (9005,f620) Adaptec AHA-3960D / AIC-7899A U160/m
Class 0x1: Mass storage controller/SCSI storage controller

2/0x6/0 8086,1008 (8086,1107) Intel Corp. 82544EI Gigabit Ethernet Controller 
(Copper)
Class 0x2: Network controller/Ethernet controller

3/0x6/0 14e4,1645 (1028,121) Broadcom Corporation NetXtreme BCM5701 Gigabit 
Ethernet
Class 0x2: Network controller/Ethernet controller

3/0x8/0 14e4,1645 (1028,121) Broadcom Corporation NetXtreme BCM5701 Gigabit 
Ethernet
Class 0x2: Network controller/Ethernet controller

4/0x8/0 8086,309 Intel Corp. 
Class 0x60400: Bridge/PCI bridge

5/0x6/0 9005,cf (1028,121) Adaptec AIC-7899P U160/m
Class 0x1: Mass storage controller/SCSI storage controller

5/0x6/1 9005,cf (1028,121) Adaptec AIC-7899P U160/m
Class 0x1: Mass storage controller/SCSI storage controller



--
Christian Pélissier
Office National d'Études et de Recherches Aérospatiales BP 72 92322 Chatillon
Tel: 33 1 46 73 44 19, Fax: 33 1 46 73 41 50

___
Solaris_fr liste de diffusion en français pour Solaris, sur toutes architectures
Solaris_fr@x86.sun.com
http://x86.sun.com/mailman/listinfo/solaris_fr