Does this issue exist in 4.2/4.2.1?  I'm going to put the bug as blocker,
if you disagree we can lower it.  I really think it is quite a bad scenario
to mount NFS to the mgmt server.

Darren


On Thu, Oct 31, 2013 at 10:48 AM, Min Chen <min.c...@citrix.com> wrote:

> Delaying them until ssvm is up may not that easy to handle in current
> CloudStack. We may be able to send an error in this case by distinguishing
> S3 register template case from other scenarios. Would you mind filing a
> JIRA bug on this? Your issue seems different from the issue filed by Daan
> (https://issues.apache.org/jira/browse/CLOUDSTACK-4759).
>
> Thanks
> -min
>
>
> On 10/31/13 10:38 AM, "Darren Shepherd" <darren.s.sheph...@gmail.com>
> wrote:
>
> >The behaviour should be to delay until there is a SSVM available.  I don't
> >know if that is even possible in CloudStack, I don't want you to sleep().
> >Is there any way to delay?  Something else in the system should be
> >ensuring
> >that a SSVM is running and available (what I don't know...).  If you can't
> >delay, it is far better in my mind to send an error to the user than to
> >try
> >to do the operation on the mgmt server.
> >
> >I think it is very dangerous to have this code that routes to localhost
> >because in a production setup ACS will have the sudo access to
> >mount/mkdir.  But the server may not have network access, so you run the
> >chance of mounting the NFS and having it hang almost indefinitely which
> >can
> >cause system instability for the mgmt server.
> >
> >The specific issue I have right now is that for some reason on master, the
> >allocator is not working for me anymore.  So SSVM doesn't deploy.  If I
> >restart the mgmt stack, on host connect it tries to download templates so
> >it sends a command and it goes to LocalHostEndPoint.
> >
> >Darren
> >
> >
> >On Thu, Oct 31, 2013 at 10:28 AM, Min Chen <min.c...@citrix.com> wrote:
> >
> >> Yes, that is true, it is a bug in that case. The logic of choosing
> >> endpoint to send Command will not work properly for destroying/Stopping
> >>VM
> >> case. Our assumption is that registering template is done when ssvm is
> >>up
> >> and running. Otherwise, it will send to LocalHost to execute command. In
> >> your opinion, what should be expected behavior if user is trying to
> >> register template when ssvm is crashed? Directly reporting error instead
> >> of trying anything.
> >>
> >> Thanks
> >> -min
> >>
> >> On 10/31/13 10:18 AM, "Darren Shepherd" <darren.s.sheph...@gmail.com>
> >> wrote:
> >>
> >> >It's happening when I first create the zone.  I'll debug it further to
> >> >tell
> >> >you exactly what its happening.  But I don't understand how the
> >>following
> >> >code in DefaultEndpointSelector could be correct.  If I have a zone,
> >>and I
> >> >delete/stop/crash the SSVM, and at the same time register a new
> >>template,
> >> >it seems the DownloadCommand will go to LocalHostEndPoint.
> >> >
> >> >    protected EndPoint findEndpointForImageStorage(DataStore store) {
> >> >        Long dcId = null;
> >> >        Scope storeScope = store.getScope();
> >> >        if (storeScope.getScopeType() == ScopeType.ZONE) {
> >> >            dcId = storeScope.getScopeId();
> >> >        }
> >> >        // find ssvm that can be used to download data to store. For
> >> >zone-wide
> >> >        // image store, use SSVM for that zone. For region-wide store,
> >> >        // we can arbitrarily pick one ssvm to do that task
> >> >        List<HostVO> ssAHosts =
> >> >listUpAndConnectingSecondaryStorageVmHost(dcId);
> >> >        if (ssAHosts == null || ssAHosts.isEmpty()) {
> >> >            s_logger.info("No running ssvm is found, so command will
> be
> >> >sent to LocalHostEndPoint");
> >> >            return LocalHostEndpoint.getEndpoint(); // use local host
> >>as
> >> >endpoint in
> >> >            // case of no ssvm existing
> >> >        }
> >> >        Collections.shuffle(ssAHosts);
> >> >        HostVO host = ssAHosts.get(0);
> >> >        return
> >>RemoteHostEndPoint.getHypervisorHostEndPoint(host.getId(),
> >> >host.getPrivateIpAddress(),
> >> >                host.getPublicIpAddress());
> >> >    }
> >> >
> >> >Darren
> >> >
> >> >
> >> >On Thu, Oct 31, 2013 at 9:42 AM, Min Chen <min.c...@citrix.com> wrote:
> >> >
> >> >> Hi Darren,
> >> >>
> >> >>         The logic of sending command to Local in case of no SSVM is
> >>up
> >> >>is
> >> >> to
> >> >> support S3 as secondary storage. In case of S3 as secondary storage,
> >> >> system vm template is automatically downloaded to S3 when S3 is added
> >> >>into
> >> >> CloudStack, unlike NFS secondary storage case where we used a script
> >>to
> >> >> pre-populate system vm template. The thing I don't get is: what
> >>scenario
> >> >> are you trying to do to trigger DownloadCommand when SSVM is not up?
> >> >>
> >> >>         Thanks
> >> >>         -min
> >> >>
> >> >> On 10/31/13 9:32 AM, "Darren Shepherd" <darren.s.sheph...@gmail.com>
> >> >> wrote:
> >> >>
> >> >> >No, that's not the problem.  The problem is that the DownloadCommand
> >> >> >is supposed to go to the SSVM, but it sending it to the
> >> >> >LocalHostEndPoint which is the mgmt server.  So the mgmt server can
> >> >> >not create /var/cloudstack/mnt/
> >> >> >secStorage/64d6e26f-e656-3ba3-908f-ce6610ede011.  I have my mgmt
> >>setup
> >> >> >so that it does not have sudo access.  A standard cloudstack install
> >> >> >has sudo access so it will create those folders and mount on the
> >>mgmt
> >> >> >server, but it shouldn't.
> >> >> >
> >> >> >Please don't tell me we made a change so that the mgmt server is
> >> >> >expected to have NFS access to all secondary storages.
> >> >> >
> >> >> >Darren
> >> >> >
> >> >> >On Thu, Oct 31, 2013 at 8:54 AM, Wei ZHOU <ustcweiz...@gmail.com>
> >> >>wrote:
> >> >> >> Please check if you can
> >> >> >> create
> >> >>
> >>>>/var/cloudstack/mnt/secStorage/64d6e26f-e656-3ba3-908f-ce6610ede011,
> >> >> >> and mount nfs point.
> >> >>
> >> >>
> >>
> >>
>
>

Reply via email to