How to be sure that I can remove a mailbox partition

Andrew Morgan morgan at orst.edu
Wed Jun 27 19:26:38 EDT 2012


On Wed, 27 Jun 2012, Javier Sánchez-Arévalo Díaz wrote:

> I have a email server with two local partitions for mailboxes ("default" and 
> "part2"). Recently these partitions became almost full so I decided create a 
> new partition over a NFS mountpoint and migrate all the mailboxes to this new 
> partition ("part3").
>
> The target is to move all  the mailboxes to "part3" in order to leave 
> "default" and "part2" completely empty. Once this is done I want to stop 
> using them ("default" and "part2") and remove physically the hardisks where 
> they are in order to plug new bigger disks.
>
> After moving all the mailboxes to "part3" everything is working fine but, 
> before removing "default" and "part2", I would like to make a question:
>
> The question is. How I can be completely sure that I can do it safely?
>
> I have done the next tests but I would prefer to ask to experts like you 
> before doing It. Its a production server with almost 20000 mailboxes:
>
>
> // list of partitions
>
> pcocol01:~ # cat /etc/imapd.conf | grep -i part
> partition-default: /buzonesdir
> partition-part2: /mnt/aux
> partition-part3: /mnt/celerra
> defaultpartition: part3
>
> ============================================================
>
>
> // mount points of these partitions
> pcocol01:~ # mount
> /dev/cciss/c0d1p1 on /buzonesdir type reiserfs (rw,acl,user_xattr)
> /dev/sdb1 on /mnt/aux type ext3 (rw)
> 212.145.146.8:/FS_AUX/FS_AUX on /mnt/celerra type nfs (rw,addr=212.145.146.8)
>
>
> ============================================================
>
>
> // Check that nobody is using "default" and "part2"
>
> pcocol01:~ # fuser -m /mnt/aux/
> pcocol01:~ #
>
>
> pcocol01:~ # fuser -m /buzonesdir/
> pcocol01:~ #
>
> pcocol01:~ # fuser -m /mnt/celerra
> /mnt/celerra:         6488cm  7467cm  7500cm  7501cm  7504cm 7505cm  7507cm 
> 7508cm  7513cm  7514cm  7515cm  7519cm  7549cm 7565cm  7567cm  7573cm  7596cm 
> 7607cm  7623cm  7624cm  7625cm 7626cm 10513c 10521cm 10527cm 24266cm 26056cm 
> 10233cm 32528cm 26829cm  7667cm 13155cm  5872cm  6020cm 27926cm 27931cm 
> 27935cm 28826cm  4689cm  4874cm  5893cm  5895cm  6389cm  6446cm  7286cm 
> 7407cm  7509cm  8716cm  8884cm  8889cm 29283cm 14523cm  3771cm 3772cm  3613cm 
> 13822cm 22701c 16272cm 11921c  7069c 28817cm 12127cm 28148cm 11318cm   801cm 
> 1052c  3823c  8338cm  9092cm  9883c 13770cm 19410cm 20014cm 20956cm 24031c 
> 24371cm 25054cm 25827c 27930c 31191cm 31542cm 31612c 31701cm 31829cm 32249cm 
> 32357cm 32374cm 32400cm 32462c  1274c  1289c  1756c  1956cm  2260cm  7039c 
> 7506cm  7613cm 7883cm  7949cm  7956cm  8069c  8445cm  8540c  8611c  9297cm 
> 9495cm 11116cm 14525cm 15235cm 16589cm 19732cm 20811cm 20960cm 21215cm 
> 21309cm 21606cm 21667cm 22861cm 22878cm 23179c 23222cm 23305cm 23308cm 23321c 
> 23364cm 23492c 23550c 23557cm 23599cm 23610cm 23616cm 23758cm 23870cm 24103cm 
> 24144cm 24154cm 24195cm 24200cm 24257cm 24432cm 24748cm 25025cm 25027cm 
> 25159cm 25160cm 25171cm 25175cm 25190cm 25428cm 25429cm 25484cm 25487cm 
> 25650cm 25688cm 25923cm 25955cm 25962cm 25968cm 25969cm 26293cm 26482cm 
> 26529c 26532cm 26534cm 26603cm 26640cm 26649cm 26691cm 26760c 26761cm 26851cm 
> 26866cm 26891cm 26919cm 26922cm 26935cm 26961cm 27123cm 27208cm 27281cm 
> 27350cm 27422cm 27432cm 27498cm 27639cm 27640c 27735cm 27741cm 27778cm 
> 27839cm 27865cm 27868cm 27909cm 27928cm 28018cm 28064cm 28170cm 28198cm 
> 28201cm 28226cm 28241cm 28258c 28295cm 28315cm 28340cm 28343cm 28348cm 
> 28371cm 28379cm 28606c 28640cm 28641c 28642c 28646cm 28654cm
> pcocol01:~ #
>
>
> ============================================================
>
> //list of mailboxes to be sure that none is located in "default" or "part2"
>
> cyrus at pcocol01:~> ctl_mboxlist -d | wc -l
> 75444
> cyrus at pcocol01:~> ctl_mboxlist -d -p default | wc -l
> 0
> cyrus at pcocol01:~> ctl_mboxlist -d -p part2 | wc -l
> 0
> cyrus at pcocol01:~> ctl_mboxlist -d -p part3 | wc -l
> 75444

These results from ctl_mboxlist show me that no mailboxes reside on 
"default" or "part2" partitions.

> ============================================================
>
> // Contents of "default" and "part2" partitions
>
> pcocol01:~ # ls -l /buzonesdir/
> total 0
> drwx------ 2 cyrus mail 448 2012-06-20 13:32 stage.
> drwxr-xr-x 2 cyrus mail  48 2012-06-27 08:37 user
> cyrus at pcocol01:~> ls -l /buzonesdir/user/
> total 0
> cyrus at pcocol01:~> ls -l /buzonesdir/stage./
> total 2094
> -rw------- 1 cyrus mail    8288 2012-04-26 12:25 10770-1335435917-0
> -rw------- 1 cyrus mail   69557 2007-10-04 17:05 13569-1191510346-0
> -rw------- 1 cyrus mail  630968 2007-11-12 08:33 17067-1194852808-0
> -rw------- 1 cyrus mail     969 2010-06-27 21:15 23403-1277666141-1
> -rw------- 1 cyrus mail    3054 2012-05-16 08:07 24524-1337148471-0
> -rw------- 1 cyrus mail    3063 2012-05-16 08:07 24530-1337148469-0
> -rw------- 1 cyrus mail    3004 2012-05-16 08:07 24539-1337148470-0
> -rw------- 1 cyrus mail    1564 2010-06-26 18:25 27236-1277569504-1
> -rw------- 1 cyrus mail 1397725 2007-09-28 13:20 32238-1190978409-0
> -rw------- 1 cyrus mail    3457 2007-09-28 13:19 32461-1190978393-0

These are probably junk.  The .stage directory is used to hold messages 
temporarily during delivery.  Sometimes if there was a problem during 
delivery they will get stuck here.  You can view the files to see what 
messages are contained in there.  Perhaps you want to check if they were 
delivered, at least for the recent ones.

> pcocol01:~ # ls -l /mnt/aux/
> total 28
> drwx------  2 root  root 16384 2012-04-26 09:24 lost+found
> drwx------  2 cyrus mail  4096 2012-06-05 13:18 stage.
> drwxr-xr-x  2 cyrus mail  4096 2012-06-27 10:49 user
> pcocol01:/mnt/aux/stage. # ls -l /mnt/aux/stage./
> total 0
> pcocol01:~ # ls -l /mnt/aux/user/
> total 0
>
> ============================================================
>
>
> As far as I know It looks like that everything is ready for removing the 
> partitions
> but I have read that also might not be any "old partition entry" in 
> mailboxes.db and I have this results:
>
>
> pcocol01:/var/lib/imap # strings mailboxes.db  | grep default | more
> 0 default anyone    lrs
> 0 default 12546    lrswipcda
> '0 default 12546    lrsipd    cyrus    lrswipcda
> '0 default 12546    lrsipd    cyrus    lrswipcda
> $0 default 15311tasaciones    lrswipcda
> 10 default 15311tasaciones    lrsipd    cyrus    lrswipcda
> 10 default 15311tasaciones    lrsipd    cyrus    lrswipcda
> 0 default 16827    lrswipcda
> '0 default 16827    lrsipd    cyrus    lrswipcda
> '0 default 16827    lrsipd    cyrus    lrswipcda
> 0 default a22709    lrswipcda
> (0 default a22709    lrsipd    cyrus    lrswipcda
> (0 default a22709    lrsipd    cyrus    lrswipcda
> 0 default abosqued    lrswipcda
> *0 default abosqued    lrsipd    cyrus    lrswipcda
> *0 default abosqued    lrsipd    cyrus    lrswipcda
> 0 default abrarq    lrswipcda
> (0 default abrarq    lrsipd    cyrus    lrswipcda
> (0 default abrarq    lrsipd    cyrus    lrswipcda
> 0 default acgdev    lrswipcda
> [...]
>
> pcocol01:/var/lib/imap # strings mailboxes.db  | grep part2
> pcocol01:/var/lib/imap #
>
> Is there any problem with "default" partition?

I think using "strings mailboxes.db" is misleading.  If you want to view 
the whole mailboxes.db file, just dump it in plaintext format using 
"ctl_mboxlist -d > somefile".

> Do you know any other test to do before the removal?

Looks ready to me!

 	Andy


More information about the Info-cyrus mailing list