| Cyrill105 
 Newbie
 | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Всем привет!
 и снова о танцах с бубнами вокруг ESX и ESXi
 Проблемки со следующим железом:
 MB: supermicro X7DB8+ - http://www.supermicro.com/products/motherboard/Xeon1333/5000P/X7DB8+.cfm (Bios 2.1a).
 I/O встроеный: Adaptec AIC-7902 Controller  в довес к которому докуплен ZCR3 - http://www.supermicro.com/products/accessories/addon/AOC-LPZCR3.cfm
 AOC-LPZCR3 (bios v5.1-0[Build 8454]), корпус взял не сказёвый, а SATAшный http://www.supermicro.com/products/chassis/4U/745/SC745TQ-R800.cfm ,
 0) уж больно дорого выходит и под мои цели скази, поэтому гиговые сата воткнул 4 штучки, мама их тянет при работе с массивом райд сказёвым, а остальные потом потребуется довешу на отдельный сата контроллер простенький, что подешевле, может есть что посоветовать чтоб в бубны потом не бить по sata контроллеру на 4 порта?
 1) Пробывал ставить ESX и ESXi, но на обоих одна и таже проблема - они не видят
 SATA диски которые зацеплины на встроеный в мать контроллер Intel ESB2 SATA
 только когда отключаю cd-rom с которого инсталлирую ESX или ESXi, как отсоединяю cd-rom(ide) от сервака gjckt ecnfyjdrb vmware, то после перезагрузки пропадают SATA диски и котроллер SATA.
 Порыл инет, и каким то чудом, сам не понял как на ESX данная проблема решилась, думаю это благодаря запуску следующего файлика-скрипта (после отсоединения cd-rom и перезагрузки сата диски видяться и всё ок - причём без всяких инсталяций виртуальных IDE (это же разгружает сервер!)...
 файлик не простой, его редактить можно только в редакторах которые поддерживают юникс текст формат(пользовался wordpad-ом от WinXP32bit, потом редакторе vi убивал на только установленном ESXi первые два символа в скрипте по нажатию x и только тогда запускал).
 Но вот проблемка, сейчас файлик не запускается у меня на ESXi (пишет типа кавычка не там), хотя на ESX пол года назад робил, кто знает может подскажете как побороть (shell не знаю, а как поборол в прошлый раз не помню блин и всё)?
 вот сам файлик (прошу обратить внимание в юникс формате скрипт должен быть размером за 20 кб из-за разности в форматах):
 # Version history
 #
 # 0.2: Initial version by Reinhard Partmann
 # 0.2a: Changed the XML file settings by Pascal de Wild
 # 0.3: add check if running under ESX and in troubleshooting mode and
 #      bc is not available
 #      code cleanup
 #
 # 0.4: parameters added
 #      1st filename      ex: sata_nv     for sata_nv.xml od sata_nv.o
 #      2nd PCI-DeviceID  037f
 # 0.5  redesign.
 # 0.6  bugfix thanks jims_tx
 #
 # TODO
 #
 VERSION="0.5"
 VENDOR_ID="10de"
 # 8086 .. INTeL
 # 10de .. NVidia
 # 1166 .. ServerWorks
 # 1095 .. SIL/CMD
 DEVICE_ID="037f"
 DEVICE_NAME="MCP55 SATA Controller"
 #-------------------------
 VENDOR_FILENAME=""
 DEBUG=1
 RETURN_VAL=""
 ###############################################################################
 ###############################################################################
 #                     C O N S T A N T S                                       #
 ###############################################################################
 # define some colors
 black='\E[30;40m'
 red='\E[31;40m'
 green='\E[32;40m'
 yellow='\E[33;40m'
 blue='\E[34;40m'
 magenta='\E[35;40m'
 cyan='\E[36;40m'
 white='\E[37;40m'
 ###############################################################################
 ####          subroutines                                                  ####
 ###############################################################################
 function colorReset ()       #  Reset text attributes to normal
 {                            #+ without clearing screen.
 tput sgr0
 return 0
 }
 ###############################################################################
 function cecho ()      # Color-echo.
 # Argument $1 = message
 # Argument $2 = color
 {
 local default_msg="No message passed."
 #Doesn't really need to be a local variable.
 message=${1:-$default_msg}   # Defaults to default message.
 color=${2:-$white}           # Defaults to black, if not specified.
 echo -e "$color$message"
 # echo -n "$message"
 
 colorReset                   # Reset to normal.
 return 0
 }
 ###############################################################################
 function debug_echo() {
 if [ -z "$1" ]
 then
 echo "DEBUG_ERROR: NO Parameter"
 return 1
 else
 if [ "$DEBUG" == "1" ]
 then
 cecho "DEBUG: $1" $red >&2
 fi
 fi
 return 0
 }
 ###############################################################################
 function usage() {
 echo "USAGE: gosata.sh "
 echo "  Edit the following lines for your system"
 echo "  VENDOR_ID=xxxx "
 echo "         where xxxx is the VendorID of your SATA Controller"
 echo "         with the vendorID we select the correct filename.[o|xml]"
 echo "  DEVICE_ID=yyyy "
 echo "         where yyyy is the DeviceID of your SATA controller"
 echo
 }
 ###############################################################################
 function vendorID2name() {
 case $VENDOR_ID in
 8086) # intel
 echo "INTeL ..."
 VENDOR_FILENAME="ata_piix"
 DEVICE_ID_REPLACE="2920"
 ;;
 10de) # nvidia
 echo "NVidia ..."
 VENDOR_FILENAME="sata_nv"
 DEVICE_ID_REPLACE="037e"  #  0267
 ;;
 1166) # ServerWorks
 echo "ServerWorks ..."
 VENDOR_FILENAME="sata_svw"
 DEVICE_ID_REPLACE="0240"
 ;;
 1095) # SIL / CMD Technology
 echo "SIL/CMD Technology..."
 VENDOR_FILENAME="sata_sil"
 DEVICE_ID_REPLACE="3112"
 ;;
 *) #
 cecho "ERROR: VENDOR not found!  exiting..." $red
 VENDOR_FILENAME="notfound"
 exit
 ;;
 esac
 }
 ###############################################################################
 function esx_troubleshoot() {
 echo "check ifrunning on an ESX host : "
 if [ -f /usr/bin/vmware ]
 then
 isESX=`vmware -v | grep "VMware ESX Server 3\." | wc -l| tr -d [:space:]`
 echo "isESX: $isESX"
 #[ -f /etc/motd ] ||
 if [ $isESX == "1" ]
 then
 isESXfailsafe=`grep "ESX.*Server.*troubleshooting.*mode" /etc/motd | wc -l| tr -d [:space:]`
 echo "isESXfailsafe: $isESXfailsafe"
 
 if [ $isESXfailsafe == "1" ]
 then
 # here we assume we are running on a VMware ESX Server
 # in NOT troubleshooting mode
 BOOT_PREFIX="/boot"
 ROOT_PREFIX=""
 BOOT_MOUNTED=`mount |grep "boot" |wc -l| tr -d [:space:]`
 debug_echo "BOOT_MOUNTED $BOOT_MOUNTED"
 
 if [ $BOOT_MOUNTED == "0" ]
 then
 debug_echo "0==BOOT_MOUNTED $BOOT_MOUNTED"
 debug_echo "mount /boot"
 mount /boot
 else
 debug_echo "1==BOOT_MOUNTED $BOOT_MOUNTED"
 fi
 #else
 #     # here we assume we are running on a VMware ESX Server
 #     echo "You should do this in the ESX troubleshooting mode!"
 #     exit
 fi
 fi
 else
 # here we assume we are NOT running on a VMware ESX Server
 # because we booted a Linux LiveCD
 isESX=0
 debug_echo "isESX: $isESX"
 echo "mounting.."
 BOOT_PREFIX="/mnt/eboot"
 ROOT_PREFIX="/mnt/eroot"
 
 mount /dev/sda1 $BOOT_PREFIX
 mount /dev/sda2 $ROOT_PREFIX
 echo ""
 mount | grep sda
 echo ""
 fi
 }
 ###############################################################################
 function update_initrd(){
 echo "copying original initrd file..."
 #echo "mkdir -p $ROOT_PREFIX/tmp/initrd/extracted"
 mkdir -p $ROOT_PREFIX/tmp/initrd/extracted
 
 # here vars to use either /boot or /mnt/eboot
 #echo "cp $BOOT_PREFIX/initrd-2.4.21-47.0.1.ELvmnix.img $ROOT_PREFIX/tmp/initrd/initrd-2.4.21-47.0.1.ELvmnix.img.gz"
 cp -f $BOOT_PREFIX/initrd-2.4.21-47.0.1.ELvmnix.img $BOOT_PREFIX/initrd-2.4.21-47.0.1.ELvmnix.img.old
 mv -f $BOOT_PREFIX/initrd-2.4.21-47.0.1.ELvmnix.img $ROOT_PREFIX/tmp/initrd/initrd-2.4.21-47.0.1.ELvmnix.img.gz
 cd $ROOT_PREFIX/tmp/initrd
 
 echo "unpacking & mounting original initrd file..."
 gunzip -v -f initrd-2.4.21-47.0.1.ELvmnix.img.gz
 mount initrd-2.4.21-47.0.1.ELvmnix.img extracted -t ext2 -o loop
 
 cd extracted/etc/vmware
 echo "changing simple.map..."
 #echo "10de:037f 0000:0000 sata_nv.o" >> simple.map
 echo "adding  $VENDOR_ID:$DEVICE_ID to simple.map"
 echo "$VENDOR_ID:$DEVICE_ID 0000:0000 sata_nv.o" >> simple.map
 cp simple.map /root/simple.map
 cd ../../..
 umount extracted
 
 echo "replacing original initrd file..."
 gzip -v --best initrd-2.4.21-47.0.1.ELvmnix.img
 cp -f initrd-2.4.21-47.0.1.ELvmnix.img.gz /root/initrd-2.4.21-47.0.1.ELvmnix.img
 rm -f $BOOT_PREFIX/initrd-2.4.21-47.0.1.ELvmnix.img
 mv -f initrd-2.4.21-47.0.1.ELvmnix.img.gz $BOOT_PREFIX/initrd-2.4.21-47.0.1.ELvmnix.img
 }
 ###############################################################################
 function update_xml(){
 # decided not to calculate, which is error prone,
 # "bc" is not available in the ESX COS, XML:Simple for perl is also not there
 # bash aritmetic caused some errors asin the forum mentioned
 # and as we dont need to insert a full section,
 # because none fitted to our controller
 # just reuse a existing one but the description is then wrong
 echo "patching xml files..."
 cd   $ROOT_PREFIX/etc/vmware/pciid
 mv   $VENDOR_FILENAME.xml $ROOT_PREFIX/tmp/$VENDOR_FILENAME.xml.org
 sed -e "s/$DEVICE_ID_REPLACE/$DEVICE_ID/g" $ROOT_PREFIX/tmp/$VENDOR_FILENAME.xml.org > $VENDOR_FILENAME.xml
 }
 ###############################################################################
 function update_initd(){
 echo "generating init.d file..."
 rm -f $ROOT_PREFIX/etc/init.d/rp-esxcfg-pciid-boot
 touch $ROOT_PREFIX/etc/init.d/rp-esxcfg-pciid-boot
 cat >> $ROOT_PREFIX/etc/init.d/rp-esxcfg-pciid-boot << EOF1
 #!/bin/bash
 esxcfg-pciid
 sleep 5
 rm -f /etc/rc3.d/S99rp-esxcfg-pciid-boot
 EOF1
 chmod a+x $ROOT_PREFIX/etc/init.d/rp-esxcfg-pciid-boot
 cd $ROOT_PREFIX/etc/rc3.d/
 rm -f S99rp-esxcfg-pciid-boot
 ln -s ../init.d/rp-esxcfg-pciid-boot S99rp-esxcfg-pciid-boot
 }
 ###############################################################################
 
 ###############################################################################
 ###############################################################################
 ####   int main()                                                          ####
 ###############################################################################
 alias cp=cp
 alias mv=mv
 alias rm=rm
 # during install
 # dest:  /boot    /mnt/sysimage/boot     /dev/sda1
 # dest:  /        /mnt/sysimage          /dev/sda2
 
 clear
 colorReset
 cecho "SATA BootFix for VMware ESX Server $version by Reinhard Partmann" $yellow
 
 
 if [ $VENDOR_ID == "0" ] || [ $DEVICE_ID == "0" ]; then
 usage
 exit
 fi
 
 # are we running within COS of ESX and troubleshooting mode
 esx_troubleshoot
 
 # get the filename which have to be processed
 vendorID2name    #echo "vendorID2name->return: $?"
 echo "VENDOR_FILENAME: $VENDOR_FILENAME"
 echo "DEVICE_ID: $DEVICE_ID"
 echo "DEVICE_ID_REPLACE: $DEVICE_ID_REPLACE"
 echo ""
 
 
 
 echo "creating temp directories..."
 mkdir -p /mnt/eboot
 mkdir -p /mnt/eroot
 
 #->update init ram disk core next reboot
 
 #->update description files
 update_xml
 
 #->update next boot behaviour
 if [ $isESXfailsafe == "1" ]
 then
 esxcfg-pciid
 #        initrd is updated by the next command
 esxcfg-boot -r
 else
 # when booting a LiveCD the esx command┤s are not available.
 update_initrd
 update_initd
 fi
 
 ###############################################################################
 echo "cleanup..."
 cd /
 rm -f -r $ROOT_PREFIX/tmp/initrd
 
 echo "$isESX"
 if [ $isESX == "0" ]
 then
 echo "unmount try -- isESX: $isESX"
 cd /
 umount $BOOT_PREFIX
 umount $ROOT_PREFIX
 fi
 
 #do it manually!
   #rm -f -r /mnt/eboot
 #rm -f -r /mnt/eroot
 echo "DONE."
 echo "happy ESXing..."
 
 а вообще ещё есть вопросики:
 2) Как организовать доступ в инет всех компов с комутатора (8 портов), если инет заходит по выделенки витой с настройкой всех параметров по DHCP?
 предпочитаю по командной стоке всё настраивать, но почему то не катит написать скрипт (опирался на http://vmware-land.com/esxcfg-help.html) для удаления и настройки сети, может кто сталкивался?
 3) ESXi вроде как не поломан или это не так, поэтому хотелось бы знать какие ограничения ждут при переходе на пробную лицензию от vmware и как долго она работать будет? как перепробовать все фичи esxi может есть блог какой или курс желательно на русском?
 |