Всем привет!
и снова о танцах с бубнами вокруг 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 может есть блог какой или курс желательно на русском?