Re: [openstack-dev] [cinder] Why not allow deleting volume from a CG ?

2015-02-09 Thread Mike Perez
On 16:34 Mon 09 Feb , Nilesh P Bhosale wrote:
 Adding an ability to Add/Remove existing volumes to/from CG looks fine. 
 But, it does not help the use-case where one would want to directly delete 
 a volume from CG.
 Why do we force him to first remove a volume from CG and then delete?

Xing and I have already explained the reasons for this decision previously in
the thread. Besides it being an accident, you're making an assumption that all
backends will handle directly removing a volume from a consistency group the
same. I see a few ways they can handle it:

1) The backend errors on this, and the end user will never see the error,
   because it just goes to Cinder logs from the Cinder volume service.
2) The backend allows it, but they still see that volume part of the
   consistency group, even if it was deleted. Leaving things in a weird state.
3) The backend allows the delete and updates the consistency group accordingly.

With 72 different drivers, you can't make an assumption here.

 As CG goes along with replication and backends creating a separate pool 
 per CG, removing a volume from CG, just to be able to delete it in the 
 next step, may be an unnecessary expensive operation.

Can you explain more how this is expensive? I would argue making a mistake
in deleting a volume that's part of a consistency group on accident would be an
expensive mistake.

 In fact, I think whatever decision user takes, even to delete a normal 
 volume, is treated as his conscious decision.

We're humans, we make mistakes. I work on an interface that assumes this.

-- 
Mike Perez

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [cinder] Why not allow deleting volume from a CG ?

2015-02-09 Thread Nilesh P Bhosale
Adding an ability to Add/Remove existing volumes to/from CG looks fine. 
But, it does not help the use-case where one would want to directly delete 
a volume from CG.
Why do we force him to first remove a volume from CG and then delete?
As CG goes along with replication and backends creating a separate pool 
per CG, removing a volume from CG, just to be able to delete it in the 
next step, may be an unnecessary expensive operation.

I think, we can allow removing volume from a CG with something like 
'--force' option, so that user consciously makes that decision.

In fact, I think whatever decision user takes, even to delete a normal 
volume, is treated as his conscious decision.

Thanks,
Nilesh



From:   yang, xing xing.y...@emc.com
To: OpenStack Development Mailing List (not for usage questions) 
openstack-dev@lists.openstack.org
Date:   02/07/2015 01:54 AM
Subject:Re: [openstack-dev] [cinder] Why not allow deleting volume 
from a CG ?



As Mike said, allowing deletion of a single volume from a CG is error 
prone.  User could be deleting a single volume without knowing that it is 
part of a CG.  The new Modify CG feature for Kilo allows you to remove a 
volume from CG and you can delete it as a separate operation.  When user 
removes a volume from a CG, at least he/she is making a conscious decision 
knowing that the volume is currently part of the CG.

Thanks,
Xing


-Original Message-
From: Mike Perez [mailto:thin...@gmail.com] 
Sent: Friday, February 06, 2015 1:47 PM
To: OpenStack Development Mailing List (not for usage questions)
Subject: Re: [openstack-dev] [cinder] Why not allow deleting volume from a 
CG ?

On 15:51 Fri 06 Feb , Nilesh P Bhosale wrote:
snip
 I understand this is as per design, but curious to understand logic 
 behind this.
snip
 Why not allow deletion of volumes form the CG? at least when there are 
 no dependent snapshots.

From the review [1], this is because allowing a volume that's part of a 
consistency group to be deleted is error prone for both the user and the 
storage backend. It assumes the storage backend will register the volume 
not being part of the consistency group. It also assumes the user is 
keeping tracking of what's part of a consistency group.

 With the current implementation, only way to delete the volume is to 
 delete the complete CG, deleting all the volumes in that, which I feel 
 is not right.

The plan in Kilo is to allow adding/removing volumes from a consistency 
group [2][3]. The user now has to explicitly remove the volume from a 
consistency group, which in my opinion is better than implicit with 
delete.

I'm open to rediscussing this issue with vendors and seeing about making 
sure things in the backend to be cleaned up properly, but I think this 
solution helps prevent the issue for both users and backends.

[1] - https://review.openstack.org/#/c/149095/
[2] - 
https://blueprints.launchpad.net/cinder/+spec/consistency-groups-kilo-update

[3] - https://review.openstack.org/#/c/144561/

--
Mike Perez

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [cinder] Why not allow deleting volume from a CG ?

2015-02-09 Thread Duncan Thomas
On 9 February 2015 at 13:04, Nilesh P Bhosale nilesh.bhos...@in.ibm.com
wrote:

 Adding an ability to Add/Remove existing volumes to/from CG looks fine.
 But, it does not help the use-case where one would want to directly delete
 a volume from CG.
 Why do we force him to first remove a volume from CG and then delete?


Because the risk of a user accidentally deleting a volume that is part of a
CG and making their CG useless was considered greater than the cost of
having to make two API calls. This was discussed during the design phase of
CGs, at length.

Many things are possible, be are trying to choose a subset that can be:

- Implemented on as many different backends as possible
- Don't limit backend architectures from doing novel new things
- Allow a rich tenant experience
- Guide a tenant away from operating in a high-risk manner

--
Duncan Thomas
__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [cinder] Why not allow deleting volume from a CG ?

2015-02-06 Thread Mike Perez
On 15:51 Fri 06 Feb , Nilesh P Bhosale wrote:
snip
 I understand this is as per design, but curious to understand logic behind 
 this.
snip
 Why not allow deletion of volumes form the CG? at least when there are no 
 dependent snapshots.

From the review [1], this is because allowing a volume that's part of
a consistency group to be deleted is error prone for both the user and the
storage backend. It assumes the storage backend will register the volume not
being part of the consistency group. It also assumes the user is keeping
tracking of what's part of a consistency group.

 With the current implementation, only way to delete the volume is to 
 delete the complete CG, deleting all the volumes in that, which I feel is 
 not right.

The plan in Kilo is to allow adding/removing volumes from a consistency group
[2][3]. The user now has to explicitly remove the volume from a consistency
group, which in my opinion is better than implicit with delete.

I'm open to rediscussing this issue with vendors and seeing about making sure
things in the backend to be cleaned up properly, but I think this solution
helps prevent the issue for both users and backends.

[1] - https://review.openstack.org/#/c/149095/
[2] - 
https://blueprints.launchpad.net/cinder/+spec/consistency-groups-kilo-update
[3] - https://review.openstack.org/#/c/144561/

-- 
Mike Perez

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [cinder] Why not allow deleting volume from a CG ?

2015-02-06 Thread yang, xing
As Mike said, allowing deletion of a single volume from a CG is error prone.  
User could be deleting a single volume without knowing that it is part of a CG. 
 The new Modify CG feature for Kilo allows you to remove a volume from CG and 
you can delete it as a separate operation.  When user removes a volume from a 
CG, at least he/she is making a conscious decision knowing that the volume is 
currently part of the CG.

Thanks,
Xing


-Original Message-
From: Mike Perez [mailto:thin...@gmail.com] 
Sent: Friday, February 06, 2015 1:47 PM
To: OpenStack Development Mailing List (not for usage questions)
Subject: Re: [openstack-dev] [cinder] Why not allow deleting volume from a CG ?

On 15:51 Fri 06 Feb , Nilesh P Bhosale wrote:
snip
 I understand this is as per design, but curious to understand logic 
 behind this.
snip
 Why not allow deletion of volumes form the CG? at least when there are 
 no dependent snapshots.

From the review [1], this is because allowing a volume that's part of a 
consistency group to be deleted is error prone for both the user and the 
storage backend. It assumes the storage backend will register the volume not 
being part of the consistency group. It also assumes the user is keeping 
tracking of what's part of a consistency group.

 With the current implementation, only way to delete the volume is to 
 delete the complete CG, deleting all the volumes in that, which I feel 
 is not right.

The plan in Kilo is to allow adding/removing volumes from a consistency group 
[2][3]. The user now has to explicitly remove the volume from a consistency 
group, which in my opinion is better than implicit with delete.

I'm open to rediscussing this issue with vendors and seeing about making sure 
things in the backend to be cleaned up properly, but I think this solution 
helps prevent the issue for both users and backends.

[1] - https://review.openstack.org/#/c/149095/
[2] - 
https://blueprints.launchpad.net/cinder/+spec/consistency-groups-kilo-update
[3] - https://review.openstack.org/#/c/144561/

--
Mike Perez

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev