Cúltaca Linux ó Veeam ar Elbrus OS. Iompórtáil ionadach [ '?' | '.' | '!']

Dia duit gach duine.
Ailt le déanaí ar Habré Iompórtáil ionadach go praiticiúil. Cuid 1. Roghanna и Níor imir an ceol le fada ... nó níor tháinig Elbrus OS saor in aisce riamh níor fhág indifferent mé. Chinn mé staidéar a dhéanamh ar an gceist seo i gcomhthéacs an tasc cúltaca. Thairis sin, i an t-alt seo Luaitear táirgí Veeam Software, rud a chiallaíonn go bhféadfadh an cheist a bheith ábhartha go sonrach i gcomhthéacs ionadú allmhairí.

Linux Cúltaca ó Veeam ar Elbrus OS. Iompórtáil ionadach [ '?' | '.' | '!']
foinse íomhá bunaidh

Ar an gcéad dul síos, chinn mé an Elbrus OS a íoslódáil, nó in áit, ach an dáileadh atá ar fáil don ailtireacht x86_64, féach conas a oibríonn sé, agus déan iarracht Veeam Agent for Linux a shuiteáil air. Más mian leat a fháil amach cad a tháinig as seo, féach cat.

Mar sin, digression beag, i gcás nach bhfuil a fhios ag duine. Tá "Elbrus" mar sin LAP le córas ordaithe sách sonrach. Chomh maith leis, tá bogearraí Elbrus OS. Agus - contrártha le creideamh coitianta - chun an OS Elbrus a oibriú, ní gá go mbeadh córas crua-earraí bunaithe ar phróiseálaí Elbrus. Tá “PDK“ Elbrus ”do x86” - go deimhin, bhí sé le feiceáil go poiblí i bhfoirm diosca suiteála. Dála an scéil, tá fonóta “PDK - trealamh forbartha ardán, trealamh forbróra” - iontach, ciallaíonn sé sin go bhfuil tiomsaitheoir ar a laghad ann.

Retreat beag éigean eile. Is é an fírinne gur dhéileáil mé le bogearraí baile uair amháin, mar MSVS agus Baguette RTOS. Bhí taithí agam ag obair le comhpháirteanna baile, lena n-áirítear próiseálaí ó MCST. Mar sin, is féidir liom a rá le freagracht iomlán go bhfuil sainiúlacht áirithe sa réimse seo agus déanfaidh mé iarracht gan teagmháil a dhéanamh air san alt. Nuair is mian liom, cuirfidh mé an chlib [TBD]. Mar sin déanfaimid iarracht gan trolling glan agus caoineadh banal. Sa deireadh, ní mór tionscal cosanta na Rúise agus gníomhaireachtaí rialtais a thuiscint. Tír mhór, buiséad beag.. [TBD].

Céim nialasach - íoslódáil. Is fiú a lua gur tháinig athshondas ar an nuacht go bhfuil OS Elbrus ar fáil, chomh mór sin gur thit an freastalaí dáileacháin. [TBD] Buíochas le Yandex agus leis an innealtóir a smaoinigh ar é a aistriú ann. Mar sin tá an luas íoslódála go maith.

An chéad chéim - Suiteáil. Suiteáil mé é ar an gcéad hypervisor a bhí ar fáil le húsáid saor in aisce. Leithdháil mé dhá chroílár, cúpla gig de RAM, 32 MB le haghaidh físeáin (beidh comhéadan grafach ann, shíl mé). Is é an diosca mar is gnách - 32 GB.
Thosaigh mé an tsuiteáil. Níor úsáid mé na treoracha suiteála, mar sin ní féidir liom trácht a dhéanamh air. Tá comhéadan suiteála TUI fíor-bheag.

Linux Cúltaca ó Veeam ar Elbrus OS. Iompórtáil ionadach [ '?' | '.' | '!']
Bhuel, iontach, is féidir linn a dhéanamh gan luch.

D'éirigh liom an chéad fhuinneog eile ar an dara iarracht. Cén fáth nach roghnaíonn tú an gléas réamhshocraithe sr0 [TBD] agus é á shuiteáil ón diosca?
Roghnaigh an fhoinse CD-ROM agus bogadh ar aghaidh.

Linux Cúltaca ó Veeam ar Elbrus OS. Iompórtáil ionadach [ '?' | '.' | '!']

Agus an crios ama á roghnú agam, thuig mé go tobann go n-úsáideann an córas an próiseas tosaithe init, agus táim ag obair ó TTY0.

Linux Cúltaca ó Veeam ar Elbrus OS. Iompórtáil ionadach [ '?' | '.' | '!']

Ceart go leor, ansin déanaimis “Elbrus” a rangú mar phobal Seanchreidmhigh[TBD]. I bprionsabal, tá sé seo go maith: ní gá duit an cód foinse a iarraidh chun a fheiceáil conas a oibríonn an próiseas íoslódála, ós rud é go bhfuil gach rud scriptithe.

Tá an chuid eile beagnach gan tábhacht: cuirimid gach rud agus aontaímid. Ar an mbealach, faighimid amach go n-úsáidtear an eithne 3.14.79-13.84. Hmm, bhí 7 [TBD] ag Debian 3.2.

Ansin, roghnaigh an deighilt diosca réamhshocraithe agus... Feicimid rabhadh:

Linux Cúltaca ó Veeam ar Elbrus OS. Iompórtáil ionadach [ '?' | '.' | '!']

Hmm, ar bhealach éigin níor dhéileáil an deighilt uathoibríoch go maith le diosca 32 gig. Níor athraigh mé an diosca; chríochnaigh mé an rompu le deighilt diosca láimhe sa stíl “uile-i-amháin”. Bhí orm ext3 a shuiteáil, ós rud é nach bhféadfadh /boot a bheith i ext4.
Tháinig an córas chun cinn gan eachtra.

An dara céim - cuardach a dhéanamh ar roghanna eile.
Tar éis rummaging trí ábhar an dara diosca, thuig mé gur stór é seo le breise. i bpacáistí. Agus ag féachaint ar /etc/apt/sources.list, thuig mé gur gá é a fheistiú i /mnt/cdrom. Ach níor aimsigh mé /etc/os-release. Ach tá /etc/mcst-version leis an ábhar 3.0-rc36. Is dócha gurb é 3.0 an leagan - is cosúil go bhfuil sé oiriúnach, ach rc36? Go ginearálta, is dócha nach mbeidh bogearraí tríú páirtí in ann an dáileadh seo a aithint ar an mbealach clasaiceach.

Sa fhréamhdheighilt, glacann an eolaire / mcst mo shúil, agus ansin, le croí go tóin poill, fuair mé amach / mcst / cúltaca. Is é sin, tá uirlis chúltaca ann, agus tá sé ionsuite sa chóras! “Go hiontach,” shíl mé, “Feicfidh muid conas a oibríonn sé seo!”

Tharla sé go bhfuil script bash 4Kb / mcst/bin/backup a sholáthraíonn cóipeáil comhad. De réir réamhshocraithe - chuig an eolaire /mcst/backup. Sa chód foinse bhí mé ag súil go bhfeicfidh mé an t-ordú rsync, ach níl sé sa chumraíocht réamhshocraithe. Ní dhéanann an script ach comhaid a chóipeáil. Breathnaíonn an t-ordú rud éigin mar seo:

cp -rpdx <file backup> <file>

Tá an comhad iomlán /mcst/bin/backup anseoTugaim rabhadh duit ar an bpointe boise nach leor an script seo amháin le tuiscint iomlán a fháil. Tarraingíonn sé feidhmeanna ó /mcst/bin/source, rud atá cosúil le leabharlann feidhmeanna. Níor chuir mé san áireamh é (44KB).

#!/bin/bash

unalias -a

set +vx

source $(dirname $0)/source
[[ $? != 0 ]] && exit 1

OPTIONS="hvcdrRil:L:"

usage()
{
	echo "Usage: $PROG_NAME [-$OPTIONS] [backup]"
	echo "    h            - this help"
	echo "    v vv vvv     - verbose, very verbose, extremly verbose"
	echo "    c            - create backup"
	echo "    d            - diffs backup and system"
	echo "    r            - recovery system"
	echo "    R            - remove backup"
	echo "    i            - prompt before backup removing"
	echo "    l list       - additional backup files list"
	echo "    L list       - global backup files list"
	echo "    backup       - backup directory, default /mcst/backup/backup"
}

init_prog()
{
	typeset flg=0

	while getopts $OPTIONS opt
	do
		case $opt in
		h ) usage; exit 0;;
		v ) (( verbose = verbose + 1 )); set_verbose;;
		c ) flg=1; c_flg=1;;
		d ) flg=1; d_flg=1;;
		r ) flg=1; r_flg=1;;
		R ) flg=1; R_flg=1;;
		i ) i_flg=1;;
		l ) l_flg=1; list_arg="$list_arg $OPTARG";;
		L ) L_flg=1; LIST_arg="$LIST_arg $OPTARG";;
		* ) usage "Invalid option"; exit 1;;
		esac
	done

	set_verbose

	check_su

	init_variables

	shift $((OPTIND-1))

	if (( $# > 1 ))
	then
		echo_fatal "invalid arguments number, exp 0|1, act $#"
		exit 1
	fi

	[[ $# = 1 ]] && BACKUP=$1

	echo "Backup directory is $BACKUP"

	if [[ $L_flg = 1 ]]
	then
		backup_list="$LIST_arg"
	elif [[ $c_flg != 1 && $R_flg != 1 ]]
	then
		get_output_cmd "cat $BACKUP/$BACKUP_LIST_NAME"
		backup_list="$output_cmd"
	else
		get_output_cmd "get_backup_list"
		backup_list="$output_cmd"
	fi

	if [[ $l_flg = 1 ]]
	then
		backup_list="$backup_list $list_arg"
	fi

	if [[ $flg = 0 ]]
	then
		if [[ -d $BACKUP ]]
		then
			ls -laR $BACKUP
		else
			echo_info "Cannot access $BACKUP"	
		fi
		echo "backup_list=$backup_list"
		exit 0
	fi

###	echo "Backup list: $backup_list"
}

create_file()
{
	typeset f=$1 fr=$2
	typeset fb

	[[ -z $fr ]] && fr=$f

	fb=${f#/}

	fb=$BACKUP/$fb

	xcmd="rm -rf $fb"
	set_cmd "$xcmd"
	run_cmd

	xcmd="mkdir -p $fb"
	set_cmd "$xcmd"
	run_cmd

	if [[ -a $fr ]]
	then
		xcmd="cp -rpdx $fr $fb/file"
		set_cmd "$xcmd"
		run_cmd

		xcmd="touch $fb/create"
		set_cmd "$xcmd"
		run_cmd
	else
		xcmd="touch $fb/delete"
		set_cmd "$xcmd"
		run_cmd
	fi
}

diff_file()
{
	typeset f=$1
	typeset fb

	fb=${f#/}

	fb=$BACKUP/$fb

	if [[ -f $fb/delete ]]
	then
		echo_info "$f absent"
	elif [[ -f $fb/create ]]
	then
#		echo "state: create $f"

		if [[ ! -a $f ]]
		then
			echo_info "cannot access $f"
		else
			xcmd="diff -r $f $fb/file"
			echo "$xcmd"
			set_cmd "$xcmd" "" "0 1 2"
			run_cmd
		fi
	else
		echo_fatal "wrong $f backup"
		exit 1
	fi
}

recovery_file()
{
	typeset f=$1
	typeset fb

	fb=${f#/}

	fb=$BACKUP/$fb

	if [[ ! -a $fb ]]
	then
		echo_fatal "cannot access $fb"
		exit 1
	fi

	xcmd="rm -rf $f"
	set_cmd "$xcmd"
	run_cmd

	if [[ -f $fb/delete ]]
	then
		:
	elif [[ -f $fb/create ]]
	then
		xcmd="cp -rpdx $fb/file $f"
		set_cmd "$xcmd"
		run_cmd
	else
		echo_fatal "wrong $fb backup"
		exit 1
	fi
}

remove_backup()
{
	echo "Remove backup"

	if [[ ! -d $BACKUP ]]
	then
		echo_info "Cannot access $BACKUP"
		return
	fi

	if [[ ! -f $BACKUP/$BACKUP_LIST_NAME ]]
	then
		echo_fatal "$BACKUP_LIST_NAME absent, remove backup manually"
		exit 0
	fi

	answer=
	if [[ $i_flg = 1 ]]
	then
		echo -n "Remove $BACKUP directory (yes/...)?"
		read answer
	else
		answer=yes
	fi
	if [[ $answer = yes ]]
	then
		xcmd="rm -rf $BACKUP"
		set_cmd "$xcmd"
		run_cmd
	fi
}

recovery_backup()
{
	echo "Recovery system from $BACKUP" 

	for f in $backup_list
	do
		get_output_cmd "get_mount_point $f"
		mnt=$output_cmd
		get_output_cmd "is_ro_mounted $mnt"
		mnt=$output_cmd
		if [[ ! -z $mnt ]]
		then
			remount_rw_fs $mnt
		fi 
		recovery_file $f
		if [[ ! -z $mnt ]]
		then
			remount_ro_fs $mnt
		fi 
	done

	echo "The system is ready, reboot the system manually" 
}

create_backup()
{
		echo "Create backup"

		xcmd="mkdir -pm0777 $BACKUP"
		set_cmd "$xcmd"
		run_cmd

		for v in $backup_list
		do
			f=${v%%:*}
			backup_list2="$backup_list2 $f"
			fr=${v#*:}
			create_file $f $fr
		done
		echo "$backup_list2" >$BACKUP/$BACKUP_LIST_NAME
}

diff_backup()
{
	echo "Diffs system and backup" 

	if [[ ! -d $BACKUP ]]
	then
		echo_fatal "cannot access $BACKUP"
		exit 1
	fi

	for f in $backup_list
	do
		diff_file $f
	done
}

main()
{
	typeset f mnt mnt_list answer

	if [[ $R_flg = 1 ]]
	then
		remove_backup
	fi

	if [[ $r_flg = 1 ]]
	then
		recovery_backup
	fi

	if [[ $c_flg = 1 ]]
	then
		create_backup
	fi

	if [[ $d_flg = 1 ]]
	then
		diff_backup
	fi
}

init_prog "$@"

main

exit 0

Cé, b’fhéidir nár thuig mé rud éigin? B'fhéidir gur féidir le duine éigin a mhíniú sna tuairimí: conas a chinntíonn an script seo cúltaca sonraí sábháilte agus iontaofa? [TBD]

Tá rsync, dála an scéil, san áireamh sa bhreiseán. stórtha. Leagan 3.1.3. Sílim gur rogha níos fearr fós é rsync a úsáid seachas an feidhmchlár /mcst/bin/backup.

Ar aghaidh, chinn mé ceann úr a chur Veeam gníomhaire le haghaidh linux a. Fiafróidh duine éigin: “Cad a chaithfidh Veeam agus ionadú iompórtála a dhéanamh leis?” Sea, níl sé sa chlár, ach tá sé deimhnithe ag FSTEC, rud a chiallaíonn gur féidir é a úsáid in éagmais roghanna eile. Cúig nóiméad déag a chaitheamh ar roghanna eile ó clárlann, Bhí mé in ann 3 nasc a aimsiú don fhocal “cúltaca” (ní raibh baint ag aon cheann le mo cheist don fhocal “cúlchiste”). Níl anailís dhomhain déanta agam ar na cláir seo, mar sin ní dhéanfaidh mé iarracht a mheas cé chomh oiriúnach agus atá siad le haghaidh meaisíní cúltaca a ritheann Linux. An té a bheidh ag teastáil uaidh, tarraingeoidh sé a chonclúid féin agus roinnfidh sé sna tuairimí é.

Céim trí — suiteáil Veeam Gníomhaire le haghaidh Linux.
Mar sin, tá dhá phacáiste i nGníomhaire Veeam le haghaidh Linux: an modúl eithne veeamsnap (dála an scéil, foinse anseo) agus cód spáis úsáideora dílseánaigh i bhfoirm an phacáiste veeam.

Bhí fadhb bheag amháin ann le suiteáil an mhodúil eithne - an pacáiste dkms a bhí ar iarraidh. Is seirbhís é seo a ligeann duit modúil eithne a thógáil ón bhfoinse. De ghnáth, tá sé ar fáil ar gach dáileadh deb. Bhí orm é a íoslódáil ó stór díospóireachta tríú páirtí. Rud amháin a chuir áthas orm ná nach mbraitheann an pacáiste ar an ailtireacht, mar sin luíonn sé cosúil le ceann dúchais. Cén fáth nár cuireadh san áireamh é ar liosta na bpacáistí a bhí ar fáil, nó nach ndearnadh forbairt air [TBD]? B'fhéidir go nglactar leis nár cheart d'aon duine modúil eithne neamh-MCST a thógáil agus a reáchtáil. Tá neamhréireacht i ndáiríre anseo - ós rud é go bhfuil linux-headers. Is é sin, is féidir an modúl, más inmhianaithe, a chur le chéile de láimh agus a sheoladh le script nuair a thosaíonn an meaisín. Is dóigh liom nár cheart duit a bheith ag súil le nuashonruithe rialta ó MCST [TBD].

“Ceart go leor, tá an modúl suiteáilte - tá an chuid is deacra thart,” shíl mé... Tá an pacáiste veeam don stór deb don ardán amd64, agus tá ardán x86_64 [TBD] ag an Elbrus OS. Níl an difríocht, ar ndóigh, ach san ainm, ach déanann an difríocht seo nach bhfuil beagnach gach pacáiste ó stórtha deb tríú páirtí ag luí leis an Elbrus OS. Is féidir deireadh a chur leis an míthuiscint annoying seo go simplí: díchóimeáil an pacáiste, ceartaigh an fhaisnéis faoin ailtireacht agus cuir ar ais le chéile é. Conas é a dhéanamh Googled é láithreach.

mkdir tmp
dpkg-deb -R original.deb tmp
# edit DEBIAN/postinst
dpkg-deb -b tmp fixed.deb

Fadhb eile is ea spleáchais. Is cosúil go bhfuil na comhaid riachtanacha ann, ach níl na pacáistí. Ba é an tuiscint go raibh ainmneacha na bpacáistí difriúil óna “analógacha allmhairithe”. B'fhéidir go bhfuil na leabharlanna pacáistithe ar bhealach difriúil. Ní dhearna mé an iomarca sonraí, bhain mé beagnach gach spleáchas, agus chuaigh an tsuiteáil ar aghaidh.

Ansin tháinig fadhbanna chun cinn le cód tosaithe na seirbhíse. Bhí an script /lib/init/vars.sh in easnamh. Ar chúis éigin, bainistíonn Elbrus gan é, mar sin bainfimid é freisin. Ansin, bhí orainn feidhm aschuir na teachtaireachta a athsholáthar: bhí na feidhmeanna log_daemon_msg agus log_end_msg in easnamh. Tar éis rummaging timpeall sa chomhad /lib/lsb/init-functions, fuair mé an fheidhm log_success_msg - beidh sé go maith dúinn le haghaidh turgnaimh. Dála an scéil, sa chomhad /lib/lsb/init-functions tá an líne “# Source SuSE`s rc functions” ag tús an chomhaid [TBD].

Tar éis próiseáil garbh den sórt sin ar an bpacáiste le comhad, seoladh an cúltaca meaisín iomlán ar an sciar NFS go rathúil. D'éirigh leis an bhfeiste cúltaca freisin. Mar sin, creidim, le haghaidh tacaíocht a thabhairt do mheaisín leis an PDK Elbrus, a íoslódáil “díreach mar sin” gan aon oibleagáidí, is cinnte go bhfuil Veeam Agent for Linux oiriúnach. Fiú amháin tar éis na modhnuithe go léir le comhad.

Ar ndóigh, ní thacaítear go foirmiúil le trealamh dáileacháin Elbrus OS, ós rud é nach bhfuil sé san áireamh i liosta na cinn a dtacaítear leo. Ina theannta sin, níor thástáil an roinn QA Gníomhaire Veeam le haghaidh Linux air, mar sin iad siúd. níl aon tacaíocht ann (ar a laghad tráth foilsithe an ailt).

Tá súil agam go mbeidh an t-alt úsáideach dóibh siúd atá ag iarraidh ordú Uimh. 334 de 29.06.2017 Meitheamh XNUMX a chur i bhfeidhm. Mo cheann duit... [TBD].

Foinse: will.com

Add a comment