# socsvn commit: r298291 - soc2015/kczekirda/asiabsdcon2016

kczekirda at FreeBSD.org kczekirda at FreeBSD.org
Tue Feb 2 22:19:47 UTC 2016

Author: kczekirda
Date: Tue Feb  2 22:19:46 2016
New Revision: 298291
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=298291

Log:
iPXE and server side init

Modified:
soc2015/kczekirda/asiabsdcon2016/paper.pdf
soc2015/kczekirda/asiabsdcon2016/paper.tex

Modified: soc2015/kczekirda/asiabsdcon2016/paper.pdf
==============================================================================
Binary file (source and/or target). No diff available.

Modified: soc2015/kczekirda/asiabsdcon2016/paper.tex
==============================================================================
--- soc2015/kczekirda/asiabsdcon2016/paper.tex	Tue Feb  2 21:58:17 2016	(r298290)
+++ soc2015/kczekirda/asiabsdcon2016/paper.tex	Tue Feb  2 22:19:46 2016	(r298291)
@@ -54,13 +54,38 @@

On the server side the main part of the project is FreeNAS, it is used to provide shared storage and jails for applications. The ZFS filesystem with deduplication enabled on dataset for source code allows to save every tested revision of the source code with space saving.

+The scope of the project was only infrastructure, without focusing on tests. During the project was made simple tests of building and installing FreeBSD, it's similar to https://jenkins.freebsd.org/ but on the bare metal infrustructure and it's possible to test all commits, not all commits from one of period of time like in jenkins.
+
+Another interesting application for this project is testing drivers, for example network card drivers. Inside testing cluster it's possible build driver after any commit, test it, measure and report.
+
The most important requirement during this project was as little intervention as possible.

\section{iPXE port}
+iPXE is open source network boot firmware, it provides a full PXE implementation extended with additional features such as:
+
+\begin{itemize}
+\item boot from a web server via HTTP and HTTPS
+\item boot from iSCSI
+\item boot from wireless network
+\end{itemize}
+
+And the most important for this project: control the boot process with a scripts.
+
The firts stage of the project was creating iPXE port for FreeBSD. The port is ready for submition and has many possibilities for extensions.

\section{Servers side}
-Details of configuration I'll include in final paper.
+
+The Preboot eXecution Environment allows to boot from a network interface. Host broadcasts a DHCP discover a request and a DHCP server responds with a DHCP packet that includes PXE options (the name of a boot server and a boot file). The client downloads his boot file by using TFTP and then executes it. In this project it is iPXE loader. In the next step iPXE loads MEMDISK kernel with the location of modified mfsBSD iso file as its parameter and then nodes mount shared storage via NFS protocol.
+
+As you can see, there is a lot of services to configure:
+
+\begin{itemize}
+\item DHCP server
+\item TFTP server
+\item HTTP server
+\item NFS server
+\item Management application
+\end{itemize}

\subsection{DHCP Server}
Firts step of booting node from network is DHCP service. DHCP server responds with a DHCP packet that included PXE options, in this case the name of TFTP boot server and a boot file.