For historical reasons (and the fact that it is impossible to retrospectively fix N years of legacy documentation, blogs, Q&A sites and other web-searchable stuff), some of the OpenStack terminology is a bit confusing.
The terms "tenant" and "project" mean the same thing; see this Q&A on the "Ask OpenStack" site:
The term "tenant" is being phased out ... slowly.
So to answer your questions:
I have multiple machines on C3 under tenant called myTenant. Here tenant is the same with project. I cannot understand what do tenant and project mean here.
See above.
I also have a swift container, which I can access by tenantID and username, password and storageUrl. what are the differences between tenant here and myTenant mentioned above.
A "tenant" (or "project") has a name and an ID. Your "myTenant" is a project name. The tenant ID or project ID is a long unique identifier. You can lookup the ID for a project using the openstack
command; e.g. openstack project show myTenant
.
I used swift stat -v <containerName>
and got the Account of the container is KEY_<tenantId>
. here what is the difference between tenant, user and Account?
A "tenant" or "project" in Keystone corresponds to an "account" in Swift. A "user" in Keystone corresponds to a "user" in Swift.
(Strictly speaking the concepts are not identical. It is possible to run Swift with TempAuth middleware which gets identity information from local configs rather than from a Keystone service. But that approach is designed for stand-alone testing, not production.)