We have ~150 linux compute nodes in a POD where /var/lib/nova/instances can be a NFS mount, that stores around 50G of template ( various) files. There are times when our customers deploy/clone these images into VM's i.e. all 150 linux hosts needs to access/copy image from one NFS mount at the same time, I believe it is not going to work with NetApp because of network constraint ( 10G ), etc etc. moreover we don't wanna hammer down filer
I came across twitter murder torrent client ( avail on github ) that does similar job of distributing images to multiple peers, A quick test shows that it is giving good results ( Please note that we are using SSD's in RAID ) and I'm gonna use it as a last option but thought of checking with you'll if NetApp has a solution for this?
while a BitTorrent approach has the effect of distributing I/O across a number of peers, it's predicated on creating copies across each of them. While it might be unlikely that 50G of templates would exist across all 150 nodes it would exist at least in part across a substantial percentage of them. That doesn't seem the most efficient use of host-side SSD.
If the 150 hosts are accessing the same image (or more likely clones thereof) you may be surprised by the effect of the filers read cache (particularly if it's equipped with either FlashCache or a Flash Pool). The underlying common blocks are cached in either DRAM or Flash (dependent on filer configurations) and as a result boot / patch storms are significantly mitigated. This is one of the reasons why filers are so commonly the storage of choice for VDI deployments (which often involve simultaneous boot storms). Network utilization doesn't change per se, but you're insulated from having to descend to the disk subsystem.
If you have your glance repository resident on an NFS export and are also mounting to /var/lib/nova/instances (with both exports residing on the same FlexVol) you could clone instead of copy upon instance creation. To be clear though this isn't explicitly provided for by Nova / Glance and would need to be externally scripted.