ALT Linux Sisyphus discussions
 help / color / mirror / Atom feed
* [sisyphus] I: система загрузки CoLaBoot
@ 2018-03-16 19:46 Michael A. Kangin
  2018-03-17  6:56 ` Igor Vlasenko
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Michael A. Kangin @ 2018-03-16 19:46 UTC (permalink / raw)
  To: ALT Linux Sisyphus discussions

Здравствуйте!

Позвольте представить новую систему загрузки CoLaBoot (Compressed Layers 
Boot)

Основные идеи:
- корневая файловая система собирается из отдельных слоёв в overlayfs, и 
при этом каждый образ слоя сжат в squashfs.
- использование слоёв позволяет нарезать FS функциональными ломтиками, 
используя "наследственность" и "переиспользование": пусть у нас есть 
слой базовой системы. Поверх него мы можем сделать небольшие 
дополнительные слои installer, rescue, и слой побольше live-system. А 
поверх live-system еще extended-live-system с мультимедью и тяжёлыми 
офисными пакетами. И всё это в сумме займёт меньше места, чем набор 
"самостоятельных" образов.
- использование squashfs минимизирует используемую для кеширования 
образов слоёв память, а так же позволяет монтировать слои 
непосредственно с места, где они расположены.
- образы слоёв могут как скачиваться по сети (http/ftp/tftp/...), так и 
монтироваться напрямую с локальных носителей (cdrom/hdd). Или 
скачиваться с cdrom, чтобы не держать его в использовании. Или 
монтироваться напрямую с NFS/iSCSI. Как удобно, в общем :) (man curl: 
supported protocols (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, 
IMAPS, LDAP, LDAPS, POP3,  POP3S,  RTMP,  RTSP,  SCP,  SFTP,  SMTP, 
SMTPS, TELNET and TFTP) - всегда мечтал как-нибудь попробовать 
загрузиться с SMTP %) )
- слои могут быть optional - очень удобно для накатывания оперативных 
обновлений, которых может и не быть. Выпустили ISO с инсталлятором, а 
последние обновления ищутся при загрузке хоста на ftp.altlinux.org, а 
если не нашлись (интернета нет) - ничего страшного, продолжим без них.
- стремительность разработки: оперативные изменения могут вноситься 
только в последний небольшой слой, и цикл "нашли проблему - пофиксили 
слой - сделали squashfs - перезагрузили тестовую виртуалку - проверили" 
реально укладывается в пределах одной минуты.
- полное разделение собственно системы от используемой версии ядра и 
всех его модулей - загрузочные модули встраиваются в initrd или 
подключаются к нему отдельной initramfs по ситуации, полный набор 
модулей подключается как отдельный слой, совершенно независимый от 
остальной системы. Таким образом, необходимость обновить ядро не 
затрагивает все остальные слои (похоже на контейнерную виртуализацию, 
системе в контейнере всё равно, что там за ядро в хост-системе).
- слои можно делать ручками. Но вообще в качестве источников слоёв 
крайне органически подходит Докер, он сам основан на той же идеологии.
- возможность использования уже готовых докерных сборок, коих миллиарды 
- главное, чтобы /sbin/init было и желательно udev.
- просто создано для тощих клиентов! (собственно, для них изначально и 
разрабатывалось).

Реализация:
пакеты с весьма-базовой реализацией отправились в Сизиф:
- make-initrd-colaboot с соответствующей фичей для initrd (по мотивам 
make-initrd-netboot),
- colaboot-utils cо скриптами для изготовления образов слоёв и образов с 
модулями ядра.
Там же и немного документации, и разнообразные примеры 
изготовления-использования.

Хотелось бы переделать поддержку сети (я не умею в разные udev-каллбеки, 
извините, или как там в initrd надо по-феншую сеть поднимать?), и, в 
идеале, вообще оторвать её от CLB и реализовать отдельной фичей.

Так же хотелось бы приделать поддержку NFS/iSCSI, которые пока не 
реализованы. И поддержку размещения R/W слоя на nfs/iscsi/hdd, а не 
только в памяти, как сейчас.

Приглашаю скачать-посмотреть-распотрошить демонстрационную ISOшечку: 
http://mak.complife.ru/colaboot/clb-demo.iso

-- 
Best regards,
Michael A. Kangin


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2018-03-20 20:35 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-03-16 19:46 [sisyphus] I: система загрузки CoLaBoot Michael A. Kangin
2018-03-17  6:56 ` Igor Vlasenko
2018-03-20 20:35   ` Michael A. Kangin
2018-03-18  5:54 ` [sisyphus] " Антон Николаевич Горошкин
2018-03-18 10:12   ` shadowsbrother
2018-03-18 11:13     ` Антон Николаевич Горошкин
2018-03-18 11:37       ` Serg A. Kotlyarov
2018-03-18 12:01         ` SibSAU
2018-03-18 20:59 ` [sisyphus] I: " Michael A. Kangin

ALT Linux Sisyphus discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \
		sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru
	public-inbox-index sisyphus

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.sisyphus


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git