Add gcloud report

Approved by:	hrs (mentor, blanket)
This commit is contained in:
Benjamin Kaduk 2015-01-15 16:30:14 +00:00
parent fdf1152db5
commit 73354d2e06
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=46207

View file

@ -2604,4 +2604,153 @@
newsletter</a>.</p>
</body>
</project>
<project cat='proj'>
<title>&os; on Google Cloud</title>
<contact>
<person>
<name>
<given>Steve</given>
<common>Wills</common>
</name>
<email>swills@FreeBSD.org</email>
</person>
</contact>
<links>
<url href="https://github.com/swills/FreeBSD-gcloud">The script
used to create gcloud images</url>
<url
href="https://plus.google.com/112202779615695172291/posts/eYajb8JKerY">More
detail on how to create and use a gcloud image</url>
</links>
<body>
<p>Google Cloud is a cloud computing platform that allows users to
run hosted services and servers in a cloud maintained by
Google. The goal of this project is to provide an easy way to
create and manage &os; installations running on Google
Cloud.</p>
<p>The good news:</p>
<p>FreeBSD 10.1 runs fine. You can create an image and start it
up and login via standard ssh, via the <tt>gcloud</tt> command
or via the web console (ssh in a web browser window). More
details on how to do all this can be found in the links.
Basically, you should be able to <tt>gcutil addimage
freebsd-101-release-amd64-20150101032704
gs://swills-test-bucket/FreeBSD-10.1-RELEASE-amd64-20150101032704.tar.gz</tt></p>
<p>Then spin up an image using <tt>gcloud compute instances
create --zone us-central1-b --image
freebsd-101-release-amd64-20150101032704 --boot-disk-size 20GB
gtest1</tt></p>
<p>These commands are part of the google-cloud-sdk port, which
contains all the commands to interact with Google Cloud. There
is also a google-daemon port which is used in running instances to
create users and set them up and a google-startup-scripts port which
handles running startup/shutdown scripts as specified in node
metadata.</p>
<p>Additionally, the firstboot-growfs port has been brought back so
that new instances will grow their root filesystem. (Thanks to Colin
Percival for having created that port initially.)</p>
<p>There is also a firstboot-freebsd-update port which can be used
to update a system on first boot but is currently disabled. See
below. Similarly, the firstboot-pkgs port/scripts will install
specified packages on first boot.</p>
<p>Overall, Google Cloud Compute is quite nice; instances spin up
in about 60 seconds and it is very reasonably priced with
automatic discounts for longer term usage. There is a $300 credit
for first time users that also makes it free to try out. That
credit covers quite a lot of time, and the instances are pretty
fast, as well, even the ones without SSDs.</p>
<p>The bad news:</p>
<p>Google does not make sharing non-official images as easy as
AWS, so you have to create your own using my public tar file. The
tar was created using the script in the links section. That
script can be used to produce customized images, even though there
are no official image (nor will there be any time soon).</p>
<p>There are some issues running FreeBSD on Google Cloud,
listed in the tasks section.</p>
</body>
<help>
<task>
<p>The 8 and 16 cpu instances seem to reboot randomly.</p>
</task>
<task>
<p>Repeated UFS panics that Google folks have reported, but
I do not think those are particular to Google Cloud. The panic
message is "ffs_valloc dup alloc".</p>
</task>
<task>
<p>Running freebsd-update causes the system to become
unbootable, so updates do not work. (Reboots work fine
otherwise.)</p>
</task>
<task>
<p>There is no <tt>gcimagebundle</tt> command in the Ports
Collectiong so you cannot easily create an image from a running
machine.</p>
</task>
<task>
<p>There are a few minor issue with the startup script
that is supposed to regenerate ssh keys (for when you
create an image from an existing system).</p>
</task>
<task>
<p>10.1 works, but 10.0 does not boot; other versions remain
untested.</p>
</task>
<task>
<p>The kern.vm_guest sysctl node does not detect that it is in a
guest.</p>
</task>
<task>
<p>The vtnet driver needs wq disabled on 16 cpu boxes, but
is just disabled everywhere for now since that is easier.</p>
</task>
<task>
<p>There is a work needed for the Google
<tt>safe_format_and_mount</tt> command which formats and
mounts newly attached disks, but this is just a nicety really.</p>
</task>
<task>
<p>I need to look into irq affinity for vtnet.</p>
</task>
<task>
<p>We need to support virtualized clocks; bryanv@ is
working on this. In fact, all his ongoing work in the virt area
would probably make things work better.</p>
</task>
<task>
<p>It would be nice if there as the ability to disable the
spinner before the loader, which clutters up the console log. The
ability to disable it is in HEAD; hopefully it will be MFCd to
10-STABLE before 10.2.</p>
</task>
</help>
</project>
</report>