Computer Blog

Bienvenue !

Publié par : Jonathan le : juillet 20, 2008

Bienvenue à tous et à toutes sur ce blog. Il traite principalement de la virtualisation.
Comme vous avez peut être pu le remarquer, je n’ai plus vraiment le temps ni l’envie de m’occuper de celui ci et c’est pour cela qu’il n’y a plus de nouveaux articles.

Je vous souhaite une bonne visite et n’hésitez pas à laisser votre trâce ;-)

Merci de participer à nos sondages pour l’amélioration du blog  ! :-)

                                                                   

Qemu 0.10.5

Publié par : Jonathan le : juin 6, 2009

qemu-logo

Nouvelle version de Qemu, la 0.10.5. Voici les nouveautés :
  – kvm: trim unsupported cpu features from cpuid (Avi Kivity)
  – kvm: provide a better error message for -smp > 1 (Mark McLoughlin)
  – Remove initrd printfs (Richard Jones)
  – Initial variables found by valgrind (Jean-Christophe Dubois)
  – Fix -initrd with > 4GB guests (Glauber Costa)
  – Fix busy loop on live migration for certain platforms (Uri Lublin)
  – Remove GCC 3.x requirements from docs (Hollis Blanchard)
  – ETRAX: fixes for kernel command line, ethernet address, bmi (Edgar Iglesias)
  – CRIS: Fix bmi (Edgar Iglesias)
  – Fix bounce buffer errors (Avi Kivity)
  – Fix regression in -kernel (Anthony Liguori)

Mots-clefs :

KVM 86

Publié par : Jonathan le : juin 6, 2009

kvmbanner-logo2Nouvelle version de KVM, la 86. Voici les nouveautés :

  • merge qemu.git
    • qcow2 corruption fixes
    • cpuid initialization fixes
    • numa support
    • improve rtc time drift compensation
    • hardware watchdog
  • merge bochs bios
  • drop packets if all net links are down (Mark McLoughlin)
  • fix device assignment error checking (Michael S. Tsirkin)
  • fix -drive boot= parameter help (Pauline Middelink)
  • fix tap networking after merge (Mark McLoughlin)
  • set default configure option for ia64 (Xiantao Zhang)
  • remove unnecesary differences compared to upstream (Anthony Liguori)
  • fix build outside source directory (Anthony Liguori)
  • ppc build fixes (Hollis Blanchard)
  • revert incorrect ia64 icache sync (Hollis Blanchard)
  • fix apic id save/load (Glauber Costa)
    • fixes smp live migration
  • libkvm cosmetics (Michael S. Tsirkin)
  • fix virtio-net save/load (Alex Williamson)
  • allow loading additional acpi tables (Gleb Natapov)
  • allow loading additional smbios entries (Alex Williamson)
  • fix dirty tracking on large memory (Glauber Costa)
    • fixes live migration for guests with a lot of memory
  • fix device assignment irq error handling (Alex Williamson)
  • make kvm headers C++ friendly (Nathan Binkert)
  • remove global page optimization (Marcelo Tosatti)
    • fixes FreeBSD on shadow paging
  • move lcall, ljmp, jcc, pio decoding to decode stage (Gleb Natapov)
  • only skip instruction on task switch when approprite (Gleb Natapov)
  • kvmclock cosmetics
  • fix memory region overlap check (Jan Kiszka)
  • ia64: don’t hold slots lock in guest mode (Jes Sorensen)
  • check cr3 validity on guest restore (Marcelo Tosatti)
  • ia64: flush all tlbs on mapping change (Xiantao Zhang)
  • ia64 cosmetics (Jes Sorensen)
  • interrupt disable fixes for ia64 (Jes Sorensen)
  • unregister cpu frequency notifiers on module unload (Jan Kiszka)
  • fix mmu auditing code (Jan Kiszka)
  • move irq injection logic to common code (Gleb Natapov)
    • contains several irq fixes
  • cleanup ept memory type support (Sheng Yang)
  • enable snoop control for device assignment (Sheng Yang)
  • disable vmx on system shutdown (Sheng Yang)
  • fix nx feature reporting
  • fix efer reads on hosts without efer
  • fix apic debugging (Glauber Costa)
  • fix cross vendor migration (Andre Przywara)
  • drop request_nmi from kvm_stat (Jan Kiszka)
  • fix MTRR, PAT, MCE, MCA feature reporting
  • add cr8_legacy, abm, misaligned_sse, sse4, 3dnow prefetch feature reporting
  • add movbe and popcnt feature reporting
  • use smp_send_reschedule() to kick guests out of guest mode (Marcelo Tosatti)
  • device assignment locking fixes (Marcelo Tosatti)
  • remove port 80 passthrough on svm
    • fixes hangs on some hp laptops
  • deal with interrupt shadow state on emulated instructions (Glauber Costa)
  • properly lock kvm_mmu_change_mmu_pages (Marcelo Tosatti)
  • properly lock memory slot deletion (Marcelo Tosatti)
  • expand on make menuconfig help (Robert P. J. Day)
  • fix s390 memory slot locking vs vcpu run (Carsten Otte)
  • use hrtimer for wakeup on s390 (Christian Borntraeger)
  • s390 unlink vcpu on destroy (Christian Borntraeger)
  • sanity check s390 intercept (Carsten Otte)
  • s390 verify guest has some memory assigned (Carsten Otte)
  • do not reexecute software interrupt instructions on intel (Gleb Natapov)
  • disable cr8 intercepts if tpr patching is active (Gleb Natapov)
  • Mots-clefs :

    Proxmox 1.3

    Publié par : Jonathan le : juin 6, 2009

    Proxmox_LogoNouvelle version de Proxmox, la 1.3. Voici les nouveautés :

    • Updated Kernel
    • Support for Highpoint RR3120
    • Removed OpenVZ limit of 50 machines
    • Update to kvm-86
    • Vzdump: minor bug fixes
    • Qemu-server: added new ‘tablet’ option

     

    • Mise à jour du Kernel
    • Support d’Highpoint RR3120
    • Supression de la limite de 50 machines d’OpenVZ
    • Mise à jour vers kvm-86
    • Supression de bugs mineur de Vzdump
    • Ajout de l’option ‘tablet’ dans Qemu-server
    Mots-clefs :

    Installer Xen sur Debian Lenny avec apt-get

    Publié par : Jonathan le : juin 6, 2009

    Dans cet article je vais vous expliquer comment installer Xen sur une distribution Debian Lenny nue en se servant du gestionnaire de paquets apt-get (pouvant être substitué par aptitude).

    Pour les personnes ayant un serveur chez OVH :

    J’ai pu noter 2 grands avantages d’installer soit même Xen au lieu d’utiliser la distribution d’OVH. La 1ère est que vous possèderai un noyau vous permettant de charger des modules supplémentaires ce qui n’est pas possible avec les noyaux made in ovh, de plus le temps d’accès au réseau de vos domU sera réduit. En effet, avec la distribution Xen de OVH j’ai pu observer un temps d’accès pouvant atteindre quelques secondes au pire des cas.

    Tout d’abors il vous faut installer Debian Lenny sur votre serveur, en 32 ou 64 bits suivant votre processeur. Pour ce qui est du partionnement du ou des disques dur, prévoyez une partition spécifique pour les fichiers de vos domU. Nous utiliserons LVM qui permet de disposer d’une grande souplesse vis à vis de la gestion des partitions.

    Tout d’abord on met à jour le gestionnaire de paquets :

    # /usr/bin/apt-get update

    Ensuite on vérifi si il n’y a pas besoin de mettre à jour le système :

    # /usr/bin/apt-get upgrade

    On passe à l’installtion de Xen, pour la version 32 Bits :

    # /usr/bin/apt-get install xen-hypervisor-i386 linux-image-2.6-xen-686 linux-headers-2.6-xen-686 xen-utils-3.2-1 xen-tools bridge-utils

    pour la version 64 Bits :

    # /usr/bin/apt-get install xen-hypervisor-amd64
    linux-image-2.6-xen-amd64 linux-headers-2.6-xen-amd64 xen-utils-3.2-1 xen-tools bridge-utils

    Par défaut, le boot loader installer avec Debian est Lilo mais il ne nous permet pas de faire demarer Xen, il faut donc l’installer grace à la commande suivante :

    # /usr/bin/ap-get install grub

    Il nous faut maintenant installer Grub, pour cela il vous faut connaitre le nom du disque dur où est installer Debian, dans la plupart des cas, le disque ce nomme sda (sda1, sda2 …etc. étant les partitions présente sur le disque sda et non des disque dur).

    # grub-install /dev/sda

    Cette commande à pour effet d’écraser la MBR du disque dur et donc Lilo et installe Grub à la place.

    Il faut maintenant créer le fichier de configuration de grub, ceci se fait tout simplement en tapant la commande suivante :

    # update-grub

    Il faut maintenant rebooter  sur le nouveau noyau :

    # reboot

    Nous allons maintenant installer LVM pour avoir une gestions des partitions de chaques domU plus flexible. Il vous est possible d’utiliser un fichier ou une partition pour chaque domU mais ces solutions ne sont à mon avis pas les meilleures.

    On installe LVM :

    # /usr/bin/apt-get install lvm2

    Pour la suite de l’installation de LVM référez vous au tutoriel : http://ejoo.wordpress.com/2009/02/28/configuration-de-xen-chez-ovh/

    A ce stade, Xen est installé sur votre machine en mode réseau Bridge, ce mode est incompatible avec beaucoup d’hébergeurs comme OVH, Dedibox …etc. Il va donc faloir le configurer pour qu’il fonctionne en mode Routage. Pour OVH rien de plus simple, il vous suffit de copier les fichiers présent dans le répertoire /etc/xen de la distribution Xen made in OVH dans le répertoire /etc/xen de votre serveur et de redémarer Xen  l’aide de la commande suivante :

    # /etc/init.d/xen restart

    Si vous souhaitez utiliser les noyaux fournis par OVH pour vos domU il vous faut également les copier (ils sont présent dans le dossier /boot de la distribution Xen OVH).

    Vous pouvez télécharger le contenu du répertoire /etc/xen ici et les noyaux des domU ici .

    Pour installer et configurer vos domU suivez le tutoriel suivant : http://ejoo.wordpress.com/2009/02/28/configuration-de-xen-chez-ovh/

    N’hésitez pas à donner votre avis sur cet article ou à poser des questions en cas de difficultées.

    Mots-clefs : , , ,

    Modifier la quantité de RAM à chaud sur un domU Xen

    Publié par : Jonathan le : mars 2, 2009

    Avec Xen il est tout à fait possible de modifier la quantité de mémoire vive (RAM) d’un domU sans le redémarrer.

    Dans le fichier de configuration de votre domU il y a deux champs permettant de contrôler la RAM sur votre domU.

    La champ mem-set qui definit la quantité de mémoire alloué à votre domU et le champ mem-max qui définit la quantité de mémoire maximum que vous pouvez allouer à votre domU.

    Par exemple, si vous définissez un mem-set à 512 Mo et un mem-max à 1 Go, vous pourrez alloué jusqu’à 1 Go de RAM à votre domU sans le redémarrer mais vous ne pourrez pas lui en alloué plus.

    Nous partons du principe que le champ mem-set est a 256 Mo et que le champs mem-max est a 1 Go.

    Pour pouvoir ajouter de la ram à chaud il vous faut taper sur le domO :

    # xm mem-set 512 <NOM_DU_DOMU>

    votre domU aura désormé 512 Mo de ram au lieu de 256.

    Si par contre, vous souhaitez lui ajouter plus de  1 Go (notre champs mem-max étant égal à 1 Go), tapez :

    # xm mem-max 2000 <NOM_DU_DOMU>

    # xm mem-set 1500 <NOM_DU_DOMU>

    la mémoire maximum que vous pourrez allouer au domU sera alors de 2 Go puis la mémoire de votre domU passera a 1500 Mo.

    Mots-clefs : , ,

    Le réseau OVH avec Xen

    Publié par : Jonathan le : mars 2, 2009

    Dans cet article je vais vous expliquer comment fonctionne Xen avec le réseau OVH.

    Par default, les domU (serveurs virtuels) de Xen communique directement avec les équipement du réseau OVH avec une adresse MAC fictive. Pour des résons de sécurités, OVH ne permet pas une telle chose. Il faut donc procédé autrement.

    Pour que les domU puissent communiquer avec l’extérieur et inversement, il faut que votre domO (serveur dédié) fasse office de passerelle entre internet et les domU.

    Les paquets envoyé vers votre domU sont envoyé à votre domO (serveur dédié) qui vat a sont tour les renvoyé vers le domU cible.

    Dans l’autre sens, quand vous envoyé un paquet vers internet, votre domU envoi les paquets à votre domO et le domO envoi les paquets sur internet.

    Pour ce faire il faut que dans le fichier /etc/network/interfaces de vos serveurs virtuels il y est :

    auto eth0
    iface eth0 inet static
    address <IP FAILOVER>        # adresse DomU
    netmask 255.255.255.255
    post-up /sbin/ip route add default dev eth0

    De plus, dans les fichiers de configuration de vos domU il faut que le champs vif contienne l’ip failover du domU et le champs gateway contienne l’adresse IP de votre domO.

    Pour plus d’informations :

    http://guides.ovh.com/Xen

    Mots-clefs : , ,

    Configuration de Xen chez OVH

    Publié par : Jonathan le : février 28, 2009

    Dans cet article je vais vous détailler la configuration de votre domO (serveur dédié) et d’un domU (serveur virtuel) sur un serveur OVH. Il est très détaillé car je souhaite qu’il soit accesible au plus grand nombre.

    Tout d’abord connectez vous sur votre manager et installer la distribution Xen d’OVH disponible en cliquant sur Système d’exploitation Linux puis Distribution prête à l’emploi puis Système d’exploitation VPS Xen 3.2 (Debian 4.0). Acceptez le partitionement par defaut et lancez la réinstallation.

    Une fois l’installation terminé, connectez vous en SSH à votre serveur dédié.

    Tout d’abord nous allons mettre en place LVM, pour en savoir plus sur LVM rendez vous sur http://fr.wikipedia.org/wiki/Gestion_par_volumes_logiques .

    # cfdisk

    cfdisk vous permet de gérer les partitions de votre serveur. Sélectionnez la partition nommé Xen avec la flèche bas de votre clavier et mettez en surbrillance Type grâce aux flèches droite et gauche de votre clavier, appuyer sur entrer et entrez le code 8E correspondant aux partitions LVM, appuyez sur entrer puis grâce aux fleches droite et gauche de votre clavier mettez Write en surbrillance, appuyez sur entrer puis tapez yes puis entrer. Ceci à pour effet d’écrire la nouvelle table des partitions sur le disque dur. Une fois fini, mettez Quit en surbrillance, appuyez sur entrer puis quand vous revenez sur le prompt tapez :

    # reboot

    Le redémarrage du serveur est nécessaire pour la prise en compte de la nouvelles table des partitions et donc de votre nouvelle partition LVM.

    Une fois votre serveur redémarer, tapez :

    # umount /dev/sda2

    /dev/sda2 correspond à la partition LVM.

    Ensuite initialisez la partition grâce à la commande :

    # pvcreate /dev/sda2

    Créez maintenant un groupe de volume :

    # vgcreate <NOM_DU_GROUPE> /dev/sda2

    remplacez <NOM_DU_GROUPE> par le nom de votre choix.

    Ensuite créez un volume logique qui sera le disque dur principal de votre domU (serveur virtuel) :

    # lvcreate –size <TAILLE> –name <NOM_DU_VOLUME> <NOM_DU_GROUPE>

    remplacez <TAILLE> par la taille souhaiter pour votre volume, 1G créera une partition de 1 Go, 1M une partition de 1 Mo …etc

    remplacez <NOM_DU_VOLUME> par le nom souhaiter pour votre volume et enfin remplacez <NOM_DU_GROUPE> par le nom que vous avez donné à votre groupe de volume précédament.

    ex :

    # lvcreate –size 20G –name vds1 vds

    créera un volume logique de 20 Go qui aura pour nom vds1 et qui fera partit du groupe de volume vds.

    Créez un second volume logique pour la swap de votre domU en vous référant aux commandes précédentes, en général une swap de 512 Mo voir 1 Go est suffisante.

    Une fois les deux volumes logique créer il vous faut les formater, pour ça tapez :

    # mkfs -t ext3 /dev/<NOM_DU_GROUPE>/<NOM_DU_VOLUME>

    puis il faut formater la swap :

    # mkswap /dev/<NOM_DU_GROUPE>/<NOM_DU_VOLUME>

    Maintenant vous pouvez passer à l’installation du système d’exploitation de votre domU, ici je vous expliquerez la marche à suivre pour l’installation d’une distribution Debian Lenny.

    Tout d’abord on monte le volume logique qui servira de disque dur à votre domU en tapant :

    # mount /dev/<NOM_DU_GROUPE>/<NOM_DU_VOLUME> /mnt

    puis pour une distribution 64 Bits :

    # debootstrap –arch amd64 lenny /mnt http://mir1.ovh.net/debian

    ou pour une distribution 32 Bits :

    # debootstrap –arch i386 lenny /mnt http://mir1.ovh.net/debian

    Debootstrap vat maintenant installer le système d’exploitation du domU, cette opération prend une 10ène de minutes.

    Une fois l’installation terminer il vous faut modifier certains fichiers pour rendre debian compatible avec xen, voici la marche à suivre :

    # nano /mnt/etc/inittab

    ajoutez dans ce fichier la ligne :

    0:2345:respawn:/sbin/getty 38400 xvc0

    puis appuyez simultanément sur ctrl puis x puis sur y pour enregistrer les modifications.

    Ensuite tapez :

    # mknod /mnt/dev/xvc0 c 204 191

    # echo xvc0 >> /mnt/etc/securetty

    # mv /mnt/etc/init.d/hwclock.sh /mnt/etc/init.d/hwclock.sh.bak_ovh

    # mv /mnt/etc/init.d/hwclockfirst.sh /mnt/etc/init.d/hwclockfirst.sh.bak_ovh

    Maintenant configurez le réseau :

    # nano /mnt/etc/network/interfaces

    dans ce fichier ajoutez :

    auto lo  # Boucle locale
    iface lo inet loopback

    auto eth0
    iface eth0 inet static
    address <ADRESSE_IP_DU_DOMU>
    netmask 255.255.255.255
    post-up /sbin/ip route add default dev eth0

    remplacez <ADRESSE_IP_DU_DOMU> par une adresse IP failover bien entendu différente de celle de votre domO car ça sera l’adresse de votre domU.

    Maintenant renseignez le fichier /etc/fstab :

    # nano /mnt/etc/fstab

    dans ce fichier ajoutez :

    proc /proc proc defaults 0 0
    /dev/hda1 / ext3 defaults,errors=remount-ro 0 1
    /dev/hda2 none swap sw 0 0

    Maintenant que la configuration est terminé, démontez le volume logique :

    # umount /mnt

    puis créez un fichier de configuration pour que Xen puisse faire fonctionner votre domU :

    # cp /etc/xen/domU-64bit-ovh /etc/xen/<NOM_DE_VOTRE_DOMU>

    ou pour une distribution 32 Bits :

    # cp /etc/xen/domU-32bit-ovh /etc/xen/<NOM_DE_VOTRE_DOMU>

    # nano /etc/xen/<NOM_DE_VOTRE_DOMU>

    voici le contenu de ce fichier commenté (les champs que vous devez modifier sont en italique ) :

    #  -*- mode: python; -*-
    kernel=”/boot/domU_64/vmlinuz-2.6.21-xxxx-xenU-ipv4-64″
    memory = “256″ # Permet de définir la quantité de mémoire vive de votre domU
    maxmem = “512″ # Permet de définir la quantité de mémoire vive maximum que pourra avoir votre domU si vous souhitez en #ajouter par la suite lorsqu’il sera en cours de fonctionnement
    name = “node0001″ # Nom de votre domU
    vcpus=1 # Nombre de processeur ou de coeur que vous allouez à votre domU
    vif = [ 'ip=XXX' ] # Adresse IP failover de votre domU
    netmask = “255.255.255.0″
    gateway = “XXX” # Adresse Ip de votre domO
    # example for LVM or partition
    disk = [ 'phy:/dev/mapper/xenvg-node0001,/dev/hda1,w', 'phy:/dev/mapper/xenvg-node0001-swap,hda2,w' ] # Remplacez #par  disk = [ 'phy:/dev/<NOM_GROUPE>/<NOM_VOLUME>,hda1,w', 'phy:/dev/<NOM_GROUPE>                                         #/<NOM_VOLUME_SWAP>,hda2,w' ]

    # Set the hostname.
    #hostname= “node%d” % vmid # Remplacez par hostname=”<NOM_DU_DOMU>”

    # Set root device.
    root = “/dev/hda1″
    extra=’console=xvc0 xencons=xvc0′

    Enregistrez le fichier puis démarer votre machine virtuelle en tapant :

    # xm create /etc/xen/<NOM_DU_DOMU>

    Pour pouvoir accéder à votre machine virtuelle il vous faut taper :

    # xm console <NOM_DU_DOMU>

    Voila, votre serveur virtuel devrai fonctionner.

    Dans un prochain article je vous expliquerez comment configurer votre serveur virtuel, en y installant un serveur ssh, des sécuritées …etc.

    Si vous avez des questions ou des suggestions pour cet article, n’hésitez pas à laisser un commentaire :-)

    Mots-clefs : , ,

    Participez à la recherche scientifique depuis chez vous

    Publié par : Jonathan le : septembre 24, 2008

    logo_boinc

    N’aimeriez vous pas pouvoir faire avancer la recherche scientifique depuis chez vous et gratuitement ? Non ce n’est pas une arnaque, c’est tout simplement ce que vous permet le logiciel BOINC.

    Les scientifiques ont de plus en plus besoin d’effectuer des calculs long et complexe, heureusement l’informatique leur permet de les aider dans cette tâche difficile. Malheureusement, il faudrait des dizaines de milliers d’ordinateurs pour arrivé à traiter la masse gigantesque de données dans un temps raisonnable. Il existe des supercalculateurs qui ont une très grande capacité de calcul mais il n’en n’existe pas beaucoup dans le monde et leur location coutent très cher.

    Le logiciel BOINC permet d’associé la puissance de calcul de tout les ordinateurs sur lesquels il est installé pour effectuer ses calculs. Cela a plusieurs avantages pour les chercheurs. En effet, ils n’ont pas a louer un supercalculateur pour effectuer leur calcul et la puissance de calcul mise à leur disposition est bien supérieure à celle proposer par un supercalculateur. A titre d’exemple, pour le projet World Community Grid qui participe à la recherche contre le cancer, la dénutrition …etc, les participants arrivent en un seul jour à calculer 200 années de calcul environ. De nombreuses grandes entreprises comme IBM participe à la recherche scientifique via le logiciel BOINC.

    Voyons un peu plus en détail le fonctionnement de BOINC.

    BOINC s’installe sur votre ordinateur qu’il soit sous windows, linux ou mac. Il reçoit des petits fragment d’informations à traiter, les traitent puis les envois au serveur qui vat à son tour transmettre le résultat aux chercheurs. Vous pouvez vous même sélectionner à quel projet vous voulez participer (recherche contre le cancer, recherche contre la famine ou bien recherche de vie extra terrestre…etc).

    Vous pouvez bien entendu utiliser votre ordinateur pendant que BOINC est en fonctionnement car il utilise la puissance inutilisé de votre ordinateur. C’est à dire que vous pouvez le configurer pour qu’il n’utilise, par exemple, que 20 % de votre processeur. Il n’est pas nécessaire d’attendre la fin du calcul pour arrêté votre ordinateur, la calcul reprendra là où il c’était arrêté lorsque vous le redémarrerez.
    Vous n’êtes bien évidemment pas rémunéré mais des points de calculs vous sont attribué aux fils des calculs effectués. Ces points vous servent uniquement à montré que vous participez activement ou pas et lorsque vous faites partit d’une équipe, cela permet d’augmenter son classement.

    J’espère que cet article vous aura plu et surtout qu’il vous aura convaincu d’essayer ce fabuleux logiciel qui vous permet de faire avancer la recherche scientifique depuis chez vous :-)

    Voici les principaux sites en rapport avec le sujet :

    World Community Grid : http://www.worldcommunitygrid.org/ . Ce site propose l’adhésion à plusieurs projets qui ont principalement un rapport avec la santé. Pour participer il suffit de vous inscrire et de suivre les instructions.

    BOINC : http://boinc.berkeley.edu/ . Site officiel du logiciel BOINC, il ne vous permet que de télécharger le logiciel.

    Alliance francophone des projets BOINC : http://www.boinc-af.org/ . Site d’une équipe regroupant de nombreux participants francophones.

    Voici mes statistiques :

    Statistiques du Blog

    • 2,797 hits

    Les thèmes

    Nuage de Catégories

     

    décembre 2009
    L Ma Me J V S D
    « juin    
     123456
    78910111213
    14151617181920
    21222324252627
    28293031