Linux wrth gefn gan Veeam ar Elbrus OS. Mewnforio amnewid ['?' | '.' | '!']

Helo pawb
Erthyglau diweddar ar Habré Amnewid mewnforio yn ymarferol. Rhan 1. Dewisiadau и Ni chwaraeodd y gerddoriaeth am amser hir ... neu sut na ddaeth OS Elbrus yn rhydd ni adawodd fi yn ddifater. Penderfynais astudio'r mater hwn yng nghyd-destun y dasg wrth gefn. Ar ben hynny, yn Mae'r erthygl hon yn Sonnir am gynhyrchion Meddalwedd Veeam, sy'n golygu y gallai'r mater fod yn berthnasol yn benodol yng nghyd-destun amnewid mewnforion.

Linux wrth gefn gan Veeam ar Elbrus OS. Mewnforio amnewid ['?' | '.' | '!']
ffynhonnell delwedd wreiddiol

Yn gyntaf oll, penderfynais lawrlwytho'r Elbrus OS, neu yn hytrach, dim ond y dosbarthiad sydd ar gael ar gyfer pensaernïaeth x86_64, gweld sut mae'n gweithio, a cheisio gosod Asiant Veeam ar gyfer Linux arno. Os ydych chi eisiau gwybod beth ddaeth allan o hyn, gwelwch cath.

Felly, gwyriad bach, rhag ofn nad yw rhywun yn gwybod. Mae "Elbrus" felly prosesydd gyda system orchymyn eithaf penodol. Yn ogystal ag ef, mae meddalwedd Elbrus OS. Ac - yn groes i'r gred boblogaidd - i weithredu'r AO Elbrus, nid oes angen cael system galedwedd yn seiliedig ar brosesydd Elbrus. Mae “PDK “Elbrus” ar gyfer x86” - mewn gwirionedd, roedd yn ymddangos yn gyhoeddus ar ffurf disg gosod. Gyda llaw, mae troednodyn “PDK - pecyn datblygu platfform, pecyn datblygwr” - gwych, mae hynny'n golygu bod yna o leiaf casglwr yno.

Enciliad gorfodol bach arall. Y ffaith yw fy mod unwaith yn delio â meddalwedd domestig, megis MSVS a Baguette RTOS. Cefais brofiad o weithio gyda chydrannau domestig, gan gynnwys prosesydd o MCST. Felly, gallaf ddweud â chyfrifoldeb llawn fod yna benodolrwydd penodol yn y maes hwn a byddaf yn ceisio peidio â chyffwrdd ag ef yn yr erthygl. Pan fyddaf wir eisiau, byddaf yn rhoi'r tag [TBD]. Felly byddwn yn ceisio gwneud heb trolio llwyr a chwyno banal. Yn y diwedd, mae angen deall diwydiant amddiffyn Rwsia ac asiantaethau'r llywodraeth. Gwlad fawr - cyllideb fach.. [TBD].

Cam sero - llwytho i lawr. Mae'n werth nodi bod y newyddion bod yr AO Elbrus wedi dod ar gael wedi achosi cyseiniant, cymaint nes i'r gweinydd dosbarthu ostwng. [TBD] Diolch i Yandex a'r peiriannydd a feddyliodd am ei symud yno. Felly mae'r cyflymder lawrlwytho yn dda.

Cam cyntaf - gosod. Fe'i gosodais ar y hypervisor cyntaf a oedd ar gael i'w ddefnyddio am ddim. Dyrannais ddau graidd, cwpl o gigs o RAM, 32 MB ar gyfer fideo (bydd rhyngwyneb graffigol, meddyliais). Mae'r ddisg fel arfer - 32 GB.
Dechreuais y gosodiad. Ni ddefnyddiais y cyfarwyddiadau gosod, felly ni allaf wneud sylwadau arno. Mae rhyngwyneb gosod TUI yn finimalaidd iawn.

Linux wrth gefn gan Veeam ar Elbrus OS. Mewnforio amnewid ['?' | '.' | '!']
Wel, gwych, gallwn ni wneud heb lygoden.

Rheolais y ffenestr nesaf ar yr ail gynnig. Beth am ddewis y ddyfais rhagosodedig sr0 [TBD] wrth osod o ddisg?
Dewiswch y ffynhonnell CD-ROM a symud ymlaen.

Linux wrth gefn gan Veeam ar Elbrus OS. Mewnforio amnewid ['?' | '.' | '!']

Wrth ddewis y parth amser, sylweddolais yn sydyn bod y system yn defnyddio'r broses init boot, ac rwy'n gweithio o TTY0.

Linux wrth gefn gan Veeam ar Elbrus OS. Mewnforio amnewid ['?' | '.' | '!']

Iawn, yna gadewch i ni ddosbarthu “Elbrus” fel cymuned Hen Gredwyr[TBD]. Mewn egwyddor, mae hyn yn dda: nid oes angen i chi ofyn am y cod ffynhonnell i weld sut mae'r broses lawrlwytho yn gweithio, gan fod popeth wedi'i sgriptio.

Mae'r gweddill bron yn ddibwys: rydyn ni'n rhoi popeth ac yn cytuno. Ar hyd y ffordd, rydym yn darganfod bod y cnewyllyn yn cael ei ddefnyddio 3.14.79-13.84. Hmm, roedd gan Debian 7 3.2 [TBD].

Nesaf, dewiswch y rhaniad disg rhagosodedig a... Rydym yn gweld rhybudd:

Linux wrth gefn gan Veeam ar Elbrus OS. Mewnforio amnewid ['?' | '.' | '!']

Hmm, rywsut nid oedd y rhaniad awtomatig yn ymdopi'n dda â disg 32 gig. Wnes i ddim newid y ddisg; cwblheais y cwest gyda rhaniad disg â llaw yn yr arddull “pob-yn-un”. Roedd yn rhaid i mi osod ext3, oherwydd ni allai /boot fod yn ext4.
Daeth y system i fyny heb ddigwyddiad.

Ail gam - chwilio am ddewisiadau eraill.
Ar ôl chwilota trwy gynnwys yr ail ddisg, sylweddolais fod hon yn ystorfa gydag ychwanegol. mewn pecynnau. Ac wrth edrych ar /etc/apt/sources.list, sylweddolais fod angen ei osod yn /mnt/cdrom. Ond wnes i ddim dod o hyd i /etc/os-release. Ond mae /etc/mcst-version gyda'r cynnwys 3.0-rc36. Mae'n debyg mai 3.0 yw'r fersiwn - mae'n ymddangos ei fod yn ffitio, ond rc36? Yn gyffredinol, mae'n debygol na fydd meddalwedd trydydd parti yn gallu adnabod y dosbarthiad hwn yn y ffordd glasurol.

Yn y rhaniad gwraidd, mae'r cyfeiriadur / mcst yn dal fy llygad, ac yno, gyda chalon suddo, darganfyddais /mcst/backup. Hynny yw, mae yna offeryn wrth gefn, ac mae wedi'i ymgorffori yn y system! “Gwych,” meddyliais, “Gadewch i ni weld sut mae hyn yn gweithio!”

Daeth i'r amlwg bod sgript bash 4Kb / mcst/bin/backup sy'n darparu copïo ffeil. Yn ddiofyn - i'r cyfeiriadur /mcst/wrth gefn. Yn y cod ffynhonnell roeddwn i'n disgwyl gweld y gorchymyn rsync, ond nid yw yn y ffurfweddiad rhagosodedig. Yn syml, mae'r sgript yn copïo ffeiliau. Mae'r gorchymyn yn edrych fel hyn:

cp -rpdx <file backup> <file>

Mae'r ffeil gyfan /mcst/bin/backup ymaRwy'n eich rhybuddio ar unwaith nad yw'r sgript hon yn unig yn ddigon i'w deall yn llawn. Mae'n tynnu swyddogaethau o /mcst/bin/source, sy'n rhywbeth fel llyfrgell o swyddogaethau. Wnes i ddim ei gynnwys (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

Er, efallai nad oeddwn yn deall rhywbeth? Efallai y gall rhywun esbonio yn y sylwadau: sut mae'r sgript hon yn sicrhau copi wrth gefn o ddata diogel a dibynadwy? [TBD]

rsync, gyda llaw, wedi'i gynnwys yn yr ychwanegiad. storfeydd. Fersiwn 3.1.3. Rwy'n meddwl bod defnyddio rsync yn ddewis gwell o hyd i'r cymhwysiad /mcst/bin/backup.

Nesaf, penderfynais roi un ffres Asiant Veeam ar gyfer Linux. Bydd rhywun yn gofyn: “Beth sydd a wnelo Veeam ac amnewid mewnforio ag ef?” Ydy, nid yw yn y gofrestr, ond mae wedi'i ardystio gan FSTEC, sy'n golygu y gellir ei ddefnyddio yn absenoldeb dewisiadau eraill. Treulio pymtheg munud ar ddewisiadau amgen o cofrestrfa, Llwyddais i ddod o hyd i 3 dolen ar gyfer y gair “wrth gefn” (dim un yn ymwneud â fy nghwestiwn ar gyfer y gair “wrth gefn”). Nid wyf wedi gwneud dadansoddiad dwfn o'r rhaglenni hyn, felly ni fyddaf yn ceisio barnu pa mor addas ydynt ar gyfer peiriannau wrth gefn sy'n rhedeg Linux. Bydd pwy bynnag sydd ei angen yn dod i'w gasgliad ei hun ac yn ei rannu yn y sylwadau.

Cam Tri — gosod Asiant Veeam ar gyfer Linux.
Felly, mae Asiant Veeam ar gyfer Linux yn cynnwys dau becyn: y modiwl cnewyllyn veeamsnap (gyda llaw, ffynhonnell yma) a chod gofod defnyddiwr perchnogol ar ffurf y pecyn veeam.

Roedd un broblem fach gyda gosod y modiwl cnewyllyn - y pecyn dkms coll. Mae hwn yn wasanaeth sy'n eich galluogi i adeiladu modiwlau cnewyllyn o'r ffynhonnell. Fel rheol, mae ar gael ar bob dosbarthiad deb. Roedd yn rhaid i mi ei lawrlwytho o ystorfa dadleuol trydydd parti. Un peth a'm gwnaeth yn hapus yw nad yw'r pecyn yn dibynnu ar y bensaernïaeth, felly mae'n cyd-fynd fel un brodorol. Pam na chafodd ei gynnwys yn y rhestr o becynnau sydd ar gael, neu yn hytrach, heb ei ddatblygu [TBD]? Efallai y rhagdybir na ddylai unrhyw un adeiladu a rhedeg unrhyw fodiwlau cnewyllyn nad ydynt yn MCST. Mae gwir anghysondeb yma - gan fod penawdau linux. Hynny yw, gellir cydosod y modiwl, os dymunir, â llaw a'i lansio â sgript pan fydd y peiriant yn cychwyn. Rwy'n credu na ddylech ddisgwyl diweddariadau aml gan MCST [TBD].

“Iawn, mae'r modiwl wedi'i osod - mae'r rhan anoddaf drosodd,” meddyliais... Mae'r pecyn veeam ar gyfer y storfa deb ar gyfer y platfform amd64, ac mae gan yr Elbrus OS blatfform x86_64 [TBD]. Mae'r gwahaniaeth, wrth gwrs, yn yr enw yn unig, ond mae'r gwahaniaeth hwn yn gwneud bron pob pecyn o ystorfeydd deb trydydd parti yn anghydnaws â'r Elbrus OS. Gellir dileu'r camddealltwriaeth annifyr hwn yn syml: dadosodwch y pecyn, cywiro'r wybodaeth am y bensaernïaeth a'i rhoi yn ôl at ei gilydd. Sut i wneud hynny Google ei ar unwaith.

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

Problem arall yw dibyniaethau. Mae'n ymddangos bod y ffeiliau angenrheidiol yno, ond nid yw'r pecynnau. Yr argraff oedd bod enwau'r pecynnau yn wahanol i'w “analogau wedi'u mewnforio”. Efallai bod y llyfrgelloedd wedi'u pecynnu'n wahanol. Wnes i ddim mynd i ormod o fanylion, dileu bron pob un o'r dibyniaethau, ac aeth y gosodiad yn ei flaen.

Yna daeth problemau i'r amlwg gyda chod cychwyn y gwasanaeth. Roedd y sgript /lib/init/vars.sh ar goll. Am ryw reswm, mae Elbrus yn ymdopi hebddo, felly byddwn ni'n ei ddileu hefyd. Nesaf, roedd yn rhaid i ni ddisodli'r swyddogaeth allbwn neges: roedd y swyddogaethau log_daemon_msg a log_end_msg ar goll. Ar ôl chwilota o gwmpas yn y ffeil /lib/lsb/init-functions, darganfyddais y swyddogaeth log_success_msg - bydd yn dda i ni ar gyfer arbrofion. Gyda llaw, yn y ffeil /lib/lsb/init-functions mae'r llinell “# Source SuSE`s rc functions” ar ddechrau'r ffeil [TBD].

Ar ôl prosesu'r pecyn yn fras gyda ffeil, lansiwyd copi wrth gefn y peiriant cyfan ar y gyfran NFS yn llwyddiannus. Roedd y mownt wrth gefn hefyd yn llwyddiannus. Felly, ar gyfer gwneud copi wrth gefn o beiriant gyda'r Elbrus PDK, wedi'i lawrlwytho “yn union fel hynny” heb unrhyw rwymedigaethau, mae Asiant Veeam ar gyfer Linux yn bendant yn addas. Hyd yn oed ar ôl yr holl addasiadau gyda ffeil.

Wrth gwrs, nid yw pecyn dosbarthu Elbrus OS yn cael ei gefnogi'n ffurfiol, gan nad yw wedi'i gynnwys yn y rhestr o rai a gefnogir. Yn ogystal, ni chafodd Veeam Asiant ar gyfer Linux ei brofi arno gan yr adran SA, felly y rheini. nid oes unrhyw gefnogaeth (o leiaf adeg cyhoeddi'r erthygl).

Rwy'n gobeithio y bydd yr erthygl yn ddefnyddiol i'r rhai sy'n ceisio gweithredu gorchymyn Rhif 334 o Fehefin 29.06.2017, XNUMX. Fy un i i chi... [TBD].

Ffynhonnell: hab.com

Ychwanegu sylw